給定一個 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