본문 바로가기

[LeetCode] 627. Swap Salary

by qwee0328 2025. 3. 4.

📝 627. Swap Salary

🔹 급여 교환

중간 임시 테이블 없이 단일 업데이트 문을 사용하여 모든 'f' 및 'm' 값을 바꾸는 솔루션을 작성합니다(즉, 모든 'f' 값을 'm'으로 또는 그 반대로 변경).
단일 업데이트 문을 작성해야 하며 이 문제에 대한 선택 문을 작성하지 마십시오.

 

 

📝 문제설명

이 문제는 급여 교환(Swap Salary) 문제로, Salary 테이블에 있는 sex 컬럼의 값 중 'm'과 'f'를 서로 바꾸는 작업을 수행합니다.

조건은 단일 UPDATE 문을 사용하여 중간 임시 테이블 없이 해결해야 합니다.

 

 

📊 테이블 구조

Salary 테이블

Column Name Type
id int
name varchar
sex ENUM
salary int

 

 

💡 SQL 문제 해결 방법

  1. CASE WHEN 문을 사용하여 조건에 따라 값을 교환합니다.
  2. 단일 UPDATE 문을 사용해야 하므로 서브쿼리나 임시 테이블 없이 바로 변경해야 합니다.
  3. CASE 문을 활용하여 'm'을 'f'로, 'f'를 'm'으로 변환합니다.

 

728x90

 

🖥️ SQL 풀이

UPDATE Salary
   SET sex = CASE WHEN sex = 'm' THEN 'f' ELSE 'm' END

 

 

🔍 쿼리 분석

  • UPDATE 문은 테이블의 데이터를 수정하는 명령어입니다.
  • CASE WHEN 문은 조건문을 사용하여 특정 조건에 맞는 값을 반환합니다.
  • 이 쿼리는 sex 컬럼의 값이 'm'이면 'f'로 변경하고, 그렇지 않으면 'm'으로 변경합니다.

 

📌 실행 예제

📊 입력 데이터

Salary 테이블

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 문과 CASE WHEN 절을 활용하여 데이터를 효율적으로 수정하는 방법을 연습할 수 있습니다. 실무에서는 성별이나 상태 값과 같은 ENUM 타입 데이터를 간단히 변경할 때 매우 유용합니다.

또한, 임시 테이블 없이 데이터를 직접 수정하는 방식은 성능과 코드의 간결성 면에서 중요한 기법입니다.

 

 

더 많은 SQL 문제 풀이를 보고 싶다면 LeetCode SQL 문제 모음을 확인해 보세요! 🚀

728x90
반응형