SQL语句:按条件修改数据

时间:2022-04-27 03:39:03

case表达式:

case when <判断表达式> then <表达式>
     when <判断表达式> then <表达式>
     when <判断表达式> then <表达式>
     ...
     else <表达式>
end

更新语句需要用update语句:

update 表名 set 列名 = 修改后的值 (where <判断表达式>

例子:

给定一个 salary 表,如下所示,有 m = 男性 和 f = 女性 的值。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求只使用一个更新(Update)语句,并且没有中间的临时表。(只能写一个update语句,不能写select语句)

id name sex salary
1 A m 2500 
2 B f 1500
3 C m 5500
4 D f 500

解答:

update salary
set sex = (case sex
                when m then f
                else m
           end)