SQL/개념
CASE WHEN 문
데이터분석가 이채은
2024. 11. 16. 17:21
CASE WHEN이란?
"CASE WHEN" 구문은 조건에 따라 다른 값을 반환하거나 특정 작업을 수행할 수 있는 강력한 조건문입니다.
CASE WHEN은 프로그래밍 언어의 if-else 문과 유사하며, SQL에서 데이터 조회, 변환, 집계 등에 자주 사용됩니다.
CASE WHEN 구문
1. 단순 CASE
단순 비교를 기반으로 조건을 평가
CASE column_name
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE default_result
END
2. 검색 CASE
조건식을 기반으로 평가
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
CASE와 IF의 차이
예제
1. 급여 범위를 기준으로 분류
문제: 급여가 7000 이상이면 "High", 그렇지 않으면 "Low"로 표시
SELECT employee_id,
name,
salary,
CASE
WHEN salary >= 7000 THEN 'High'
ELSE 'Low'
END AS salary_level
FROM Employees;
2. 여러 조건 처리
문제: 급여 수준을 "High", "Medium", "Low"로 세분화
SELECT employee_id,
name,
salary,
CASE
WHEN salary >= 10000 THEN 'High'
WHEN salary >= 5000 THEN 'Medium'
ELSE 'Low'
END AS salary_level
FROM Employees;
3. CASE를 SELECT문에서 사용
문제: 직원 이름이 "Alice"이면 "관리자", 아니면 "직원"으로 표시
SELECT employee_id,
name,
CASE
WHEN name = 'Alice' THEN 'Manager'
ELSE 'Staff'
END AS role
FROM Employees;
4. CASE를 ORDER BY에서 사용
문제: 급여를 "Low", "Medium", "High" 순서로 정렬
SELECT employee_id,
name,
salary
FROM Employees
ORDER BY
CASE
WHEN salary >= 10000 THEN 1
WHEN salary >= 5000 THEN 2
ELSE 3
END;