627. Swap Salary
Easy
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'.
문제 풀이
- 주어진 salary 테이블에서 sex(성별)을 치환해야한다.
- m은 f로 f는 m으로 치환해야한다.
- salary 테이블을 update를 사용해서 값을 변경할 수 있는데, when과 case를 사용할 수 있고 if문을 사용해서 풀 수 있다.
소스 코드
When
# when, case
update salary
set
sex = case sex
when 'm' then 'f'
else 'm'
end;
If
# if
update salary set sex = if(sex = 'm', 'f', 'm')
'컴퓨터공학 > LeetCode 1000' 카테고리의 다른 글
[LeetCode] 246. Strobogrammatic Number (1) | 2022.11.29 |
---|---|
[LeetCode] 2225. Find Players With Zero or One Losses (0) | 2022.11.29 |
[LeetCode] 1873. Calculate Special Bonus (0) | 2022.11.23 |
[LeetCode] 796. Rotate String (0) | 2022.11.23 |
[LeetCode] 487. Max Consecutive Ones II (0) | 2022.11.23 |