LeetCode 數據庫面試題 – 交換工資(Swap Salary)

用一條 UPDATE 語句,在不使用中間臨時表的情況下,將 salary 表中 sex 的值反轉。

原題

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:

idnamesexsalary
1Am2500
2Bf1500
3Cm5500
4Df500

After running your query, the above salary table should have the following rows:

idnamesexsalary
1Af2500
2Bm1500
3Cf5500
4Dm500

SQL

UPDATE salary 
SET 
    sex = IF(sex='f', 'm', 'f');

OR

UPDATE salary 
SET 
    sex = CASE sex 
        WHEN 'f' THEN 'm' 
        ELSE 'f' 
    END;