sql notes: leetcode#627 swap salary

Problem


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:

id name sex salary
1 A m 2500
2 B f 1500
3 C m 5500
4 D f 500

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

id name sex salary
1 A f 2500
2 B m 1500
3 C f 5500
4 D m 500

Analysis


Write a single update query:

1
UPDATE salary

Use IF() function to swap f and m, return f if sex is m, return m otherwise:

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

Solution


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

627. Swap Salary
(中文版) SQL 笔记: Leetcode#627 Swap Salary