leetcode(sql)627. Swap Salary
2019-06-27 本文已影响0人
马路仔
- Swap Salary
给定一个表工资,例如下面的这个,它具有m=男性和f=女性的值。交换所有f和m值(即,将所有f值更改为m,反之亦然),只使用一条update语句,不使用中间临时表。注意,您必须编写一个update语句,对于这个问题不要编写任何select语句。
Salary
id name sex salary 1 A m 2500 2 B f 1500 3 C m 5500 4 D f 500
运行update语句后,上面的工资表应该有以下几行
id | name | sex | salary |
---|---|---|---|
1 | A | f | 2500 |
2 | B | m | 1500 |
3 | C | f | 5500 |
4 | D | m | 500 |
我自己刚开始想了很久也没想出正确答案,提交了都是错的,直接看答案的,哈哈哈,
UPDATE salary
SET
sex =
CASE sex
WHEN 'm' THEN 'f'
ELSE 'm'
END;
这里对sex列的值进行逐个判断,如果为 m 则 为 f ,反之ELSE 'm'。
这里用的是CASE 表达式,
CASE WHEN < 求值表达式 > THEN < 表达式 >
WHEN < 求值表达式 > THEN < 表达式 >
WHEN < 求值表达式 > THEN < 表达式 >
.
.
.
ELSE < 表达式 >
END
自己还是不熟悉sql里的语法,练的太少了。