给定一个 salary 表,以下所示,有 m = 男性 和 f = 女性 的值。交换全部的 f 和 m 值
(例如,将全部 f 值更改成 m,反之亦然)。
要求只使用一个更新(Update)语句,而且没有中间的临时表。
注意,您必只能写一个 Update 语句,请不要编写任何 Select 语句。
例如:sql
| id | name | sex | salary | |----|------|-----|--------| | 1 | A | m | 2500 | | 2 | B | f | 1500 | | 3 | C | m | 5500 | | 4 | D | f | 500 |
运行你所编写的更新语句以后,将会获得如下表:code
| id | name | sex | salary | |----|------|-----|--------| | 1 | A | f | 2500 | | 2 | B | m | 1500 | | 3 | C | f | 5500 | | 4 | D | m | 500 |
方法一:使用 CASE...WHEN... 流程控制语句ci
UPDATE salary SET sex = CASE sex WHEN 'm' THEN 'f' ELSE 'm' END;
方法二:使用字母和ASCII互转leetcode
UPDATE salary Set sex = char(ascii('m') + ascii('f') - ascii(sex));
方法三:使用ifget
UPDATE salasy Set sex = if (sex = 'f','m','f');
摘自:https://leetcode-cn.com/problems/swap-salary/solution/jiao-huan-gong-zi-by-leetcode/io