Problem 627: swap salary

This commit is contained in:
Ivan R. 2023-01-28 20:58:37 +05:00
parent de7d56a589
commit 512bc73ac5
No known key found for this signature in database
GPG key ID: 56C7BAAE859B302C
2 changed files with 55 additions and 0 deletions

View file

@ -0,0 +1 @@
UPDATE Salary SET sex = CASE WHEN sex = "f" THEN "m" ELSE "f" END;

View file

@ -0,0 +1,54 @@
# Swap salary
[Leetcode](https://leetcode.com/problems/swap-salary/)
Table: `Salary`
```
+-------------+----------+
| Column Name | Type |
+-------------+----------+
| id | int |
| name | varchar |
| sex | ENUM |
| salary | int |
+-------------+----------+
```
Id is the primary key for this table.
The sex column is ENUM value of type ('m', 'f').
The table contains information about an employee.
Write an SQL query to swap all 'f' and 'm' values (i.e., change all 'f' values to 'm' and vice versa) with a single update statement and no intermediate temporary tables.
Note that you must write a single update statement, do not write any select statement for this problem.
The query result format is in the following example.
## Example 1:
```
Input:
Salary table:
+----+------+-----+--------+
| id | name | sex | salary |
+----+------+-----+--------+
| 1 | A | m | 2500 |
| 2 | B | f | 1500 |
| 3 | C | m | 5500 |
| 4 | D | f | 500 |
+----+------+-----+--------+
Output:
+----+------+-----+--------+
| id | name | sex | salary |
+----+------+-----+--------+
| 1 | A | f | 2500 |
| 2 | B | m | 1500 |
| 3 | C | f | 5500 |
| 4 | D | m | 500 |
+----+------+-----+--------+
```
Explanation:
(1, A) and (3, C) were changed from 'm' to 'f'.
(2, B) and (4, D) were changed from 'f' to 'm'.