[오늘의 문제] Swap Sex of Employees

shlim55·2026년 1월 16일

코딩테스트

목록 보기
219/223

출처: https://leetcode.com/problems/swap-sex-of-employees/

테이블:Salary

+-------------+----------+
| 열 이름 | 데이터 유형 |
+-------------+----------+
| id | int |
| name | varchar |
| sex | ENUM |
| salary | int |
+-------------+----------+
id는 이 테이블의 기본 키(고유 값을 가진 열)입니다.
sex 열은 ENUM(범주) 데이터 유형('m', 'f')입니다.
이 테이블에는 직원에 대한 정보가 포함되어 있습니다.

임시 테이블을 사용하지 않고 단일 업데이트 문'f' 으로 모든 값 을 서로 바꾸는 'm'(즉, 모든 값을 로, 모든 'f'값을 로 변경하는 'm') 솔루션을 작성하세요 .

이 문제에서는 하나의 업데이트 문만 작성해야 하며, SELECT 문은 작성 하지 않아야 합니다 .

결과 형식은 다음 예시와 같습니다.

예시 1:

입력:
급여표:
+----+------+-----+--------+
| id | name | sex | salary |
+----+------+-----+--------+
| 1 | A | m | 2500 |
| 2 | B | f | 1500 |
| 3 | C | m | 5500 |
| 4 | D | f | 500 |
+----+------+-----+--------+ 출력:
+----+------+-----+--------+
| id | name | sex | salary |
+----+------+-----+--------+
| 1 | A | f | 2500 |
| 2 | B | m | 1500 |
| 3 | C | f | 5500 |
| 4 | D | m | 500 |
+----+------+-----+--------+ 설명:
(1, A)와 (3, C)는 'm'에서 'f'로 변경되었습니다.
(2, B)와 (4, D)는 'f'에서 'm'으로 변경되었습니다.

내가 한 풀이

UPDATE Salary
SET sex = CASE 
                WHEN sex = 'f' THEN 'm'
                WHEN sex = 'm' THEN 'f'
                ELSE ' ' -- 혹은 다른 처리
             END;

트러블 슈팅
UPDATE문의 case문..

-- UPDATE 테이블명
-- SET 컬럼명 = CASE
-- WHEN 조건1 THEN 결과1
-- WHEN 조건2 THEN 결과2
-- ELSE 기존컬럼명 -- 혹은 다른 처리
-- END;

이런 양식이니 암기 하고,
WHEN도 그냥 하나만 있어도 된다.

profile
A Normal Programmer

0개의 댓글