본문 바로가기
IT/SQL

🧩 CASE WHEN이 필터링에도 쓰인다고요?

by 맘솔 2025. 5. 11.

 

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문 내에 하나의 미니 로직을 넣는 기분으로 활용해 봅시다.~