給定一個 salary 表,如下所示,有 m = 男性 和 f = 女性 的值。 (例如,將所有 f 值更改為 m,反之亦然)。 要求只使用一個更新(Update)語句,並且沒有中間的臨時表。 註意,您必只能寫一個 Update 語句,請不要編寫任何 Select 語句。 例如 : 運行你所編寫的更 ...
給定一個 salary 表,如下所示,有 m = 男性 和 f = 女性 的值。交換所有的 f 和 m 值
(例如,將所有 f 值更改為 m,反之亦然)。
要求只使用一個更新(Update)語句,並且沒有中間的臨時表。
註意,您必只能寫一個 Update 語句,請不要編寫任何 Select 語句。
例如:
| id | name | sex | salary |
|----|------|-----|--------|
| 1 | A | m | 2500 |
| 2 | B | f | 1500 |
| 3 | C | m | 5500 |
| 4 | D | f | 500 |
運行你所編寫的更新語句之後,將會得到以下表:
| id | name | sex | salary |
|----|------|-----|--------|
| 1 | A | f | 2500 |
| 2 | B | m | 1500 |
| 3 | C | f | 5500 |
| 4 | D | m | 500 |
題解:
方法一:使用 CASE...WHEN... 流程式控制制語句
UPDATE salary
SET
sex = CASE sex
WHEN 'm' THEN 'f'
ELSE 'm'
END;
方法二:使用字母和ASCII互轉
UPDATE salary
Set
sex = char(ascii('m') + ascii('f') - ascii(sex));
方法三:使用if
UPDATE salasy
Set
sex = if (sex = 'f','m','f');
摘自:https://leetcode-cn.com/problems/swap-salary/solution/jiao-huan-gong-zi-by-leetcode/