给定一个 salary
表,以下所示,有m=男性 和 f=女性的值 。交换全部的 f 和 m 值(例如,将全部 f 值更改成 m,反之亦然)。要求使用一个更新查询,而且没有中间临时表。sql
例如:code
| id | name | sex | salary | |----|------|-----|--------| | 1 | A | m | 2500 | | 2 | B | f | 1500 | | 3 | C | m | 5500 | | 4 | D | f | 500 |
运行你所编写的查询语句以后,将会获得如下表:class
| id | name | sex | salary | |----|------|-----|--------| | 1 | A | f | 2500 | | 2 | B | m | 1500 | | 3 | C | f | 5500 | | 4 | D | m | 500 |
答案:查询
#交换工资 UPDATE salary SET sex = IF(sex="m","f","m"); UPDATE salary SET sex = (CASE WHEN sex = 'm' THEN 'f' ELSE 'm' END)