Given a table salary, such as the one below, that has m=male and f=female values. Swap all f and m values (i.e., change all f values to m and vice versa) with a single update query and no intermediate temp table.
For example:
id | name | sex | salary |
---|---|---|---|
1 | A | m | 2500 |
2 | B | f | 1500 |
3 | C | m | 5500 |
4 | D | f | 500 |
After running your query, the above salary table should have the following rows:
id | name | sex | salary |
---|---|---|---|
1 | A | f | 2500 |
2 | B | m | 1500 |
3 | C | f | 5500 |
4 | D | m | 500 |
解题思路
(1)用UPDATE
更新表中数据;
(2)用交换sex
达到交换salary
的目的,使用CASE WHEN THEN END
。
实现代码
update salary
set sex = #set后面用‘=’符号
case
when sex = 'm' then 'f' #then'f'后面没有没有逗号
else 'm'
end
update 语法:
update table_name
set col_name = values
where condition