627. 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.
id는 이 테이블의 프라이머리 키입니다.
Sex 열은 유형의 ENUM 값('m', 'f')입니다.
표에는 직원에 대한 정보가 포함되어 있습니다.
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.
SQL 쿼리를 작성하여 모든 'f' 및 'm' 값을 단일 업데이트 문으로 스왑하고 중간 임시 테이블을 사용하지 않습니다(즉, 모든 'f' 값을 'm'으로 변경).
이 문제에 대한 select 문을 작성하지 말고 단일 업데이트 문을 작성해야 합니다.
쿼리 결과 형식은 다음과 같습니다.
입출력 예
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'.
Oracle Query
UPDATE salary s
SET sex =
CASE
WHEN sex='m' THEN 'f'
WHEN sex='f' THEN 'm'
END;
update salary
set sex = decode(sex,'m','f','m');
DECODE문 - ORACLE에서만 존재하는 함수
DECODE(컬럼명, 조건, True 결과값, False 결과값)
https://sseoui.tistory.com/110
* 참고 링크 : https://leetcode.com/problems/swap-salary/discuss/504204/Oracle-solution
https://leetcode.com/problems/swap-salary/discuss/708246/Using-Decode
출처
'코딩테스트 > Leet Code' 카테고리의 다른 글
[Leet Code SQL] 183. Customers Who Never Order (0) | 2022.03.22 |
---|---|
[Leet Code SQL] 620. Not Boring Movies (0) | 2022.03.11 |
[Leet Code SQL] 596. Classes More Than 5 Students (0) | 2022.03.10 |
[Leet Code SQL] 595. Big Countries (0) | 2022.03.04 |
[Leet Code] 217. Contains Duplicate python (0) | 2022.02.25 |