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)