CASE WHEN
구문은 SQL에서 흔히 쓰는 조건 분기 출력용 문법입니다.
하지만 실무에서는 이 구문을 활용해 조건 필터링, 동적 집계,
다중 조건 처리까지 처리하는 경우도 많습니다.
이번 포스팅에서는 단순 결과 출력 외에 CASE WHEN을 활용한 두 가지 예제를 소개합니다.
❶ 특정 조건에만 필터링 적용하는 방식
예: VIP 고객만 필터하고, 일반 고객은 무시
SELECT user_id,
CASE
WHEN grade = 'VIP' THEN order_amount
ELSE NULL
END AS vip_amount
FROM orders;
조건절로 필터링하지 않아도, 원하는 행만 분기해서 데이터 출력이 가능합니다.
활용 포인트:
- ▶ 필터링과 동시에 데이터 가공 가능
- ▶ WHERE 절로 필터할 경우 누락되는 행을 유지하면서 조건만 분기 가능
❷ 조건별 집계: CASE WHEN + SUM
특정 조건에 해당하는 데이터만 집계할 때 유용한 방식입니다.
SELECT store_id,
SUM(CASE WHEN category = '식음료' THEN amount ELSE 0 END) AS food_sales,
SUM(CASE WHEN category = '의류' THEN amount ELSE 0 END) AS fashion_sales
FROM sales
GROUP BY store_id;
▶ 카테고리별로 따로 나누지 않고도, 동일한 쿼리 내에서 집계 분기가 가능해집니다.
📌 참고 팁
- ✔ WHERE 절과 함께 쓰면
CASE WHEN
은 분기 + 출력용 - ✔ GROUP BY와 함께 쓰면 조건별 통계 생성 도구로 활용
- ✔ 출력 테이블을 피벗하지 않고도 유사 피벗 효과를 얻을 수 있음
✅ 정리 – 조건문 이상의 조건문
CASE WHEN
은 단순히 텍스트 출력용으로 쓰기엔 활용도가 넓습니다.
조건별 가공, 필터링, 통계 분리도 가능하니
SELECT문 내에 하나의 미니 로직을 넣는 기분으로 활용해 봅시다.~
'IT > SQL' 카테고리의 다른 글
🔎 서브쿼리 없이 조건만 추출? – EXISTS 패턴 실무 활용법 (0) | 2025.05.14 |
---|---|
📄 WITH 절은 서브쿼리보다 더 강력하다 (0) | 2025.05.13 |
🔄 LEFT JOIN인데 데이터가 빠져요? – JOIN 실수 CASE (0) | 2025.05.11 |
❓ WHERE 절이 있는데 조건이 왜 안 먹히나요? (0) | 2025.05.11 |
📌 SQL 입문자가 자주 실수 할 만한 SELECT 문 3가지 패턴 (0) | 2025.05.11 |