데이터 분석 기술 블로그

CASE WHEN 문 본문

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;

'SQL > 개념' 카테고리의 다른 글

RIGHT 함수  (0) 2024.11.18
LIKE 연산자  (0) 2024.11.17
COALESCE 함수  (0) 2024.11.15
REGEXP 함수 (MySQL)  (0) 2024.11.14
IF 함수 (MySQL)  (0) 2024.11.13