SQL에서 데이터를 조건에 따라 분류할 때 자주 쓰이는 기능이 바로 CASE 문입니다.
많은 분들이 헷갈리는 부분이 있는데요 — CASE 문은 위에서부터 조건을 순차적으로 검사하고, 처음으로 TRUE가 되는 순간 즉시 종료한다는 점입니다.
CASE 문 구조
CASE
WHEN (price/cost) >= 1.7 THEN 'A. 고효율 메뉴'
WHEN (price/cost) >= 1.5 THEN 'B. 중효율 메뉴'
WHEN (price/cost) >= 1 THEN 'C. 저효율 메뉴'
ELSE '분류 불가'
END
동작 원리 예시
- price/cost = 2.0
- 첫 번째 조건 (>=1.7) 만족 → 'A. 고효율 메뉴' 반환 후 종료
- price/cost = 1.6
- 첫 번째 조건 불만족
- 두 번째 조건 (>=1.5) 만족 → 'B. 중효율 메뉴' 반환 후 종료
- price/cost = 1.2
- 위 두 조건 불만족
- 세 번째 조건 (>=1) 만족 → 'C. 저효율 메뉴' 반환 후 종료
- price/cost = 0.8
- 모든 조건 불만족
- ELSE 실행 → '분류 불가' 반환
핵심 포인트
- CASE 문은 위에서부터 순차적으로 검사한다.
- 처음으로 만족한 조건만 실행되고 종료되므로, 뒤의 조건은 무시된다.
- 따라서 구간이 겹칠 수 있는 경우에도, 큰 구간 → 작은 구간 순서로 작성하면 충돌 없이 깔끔하게 처리할 수 있다.
정리하자면, CASE 문은 일종의 if-else if-else 구조와 동일합니다.
조건 순서만 잘 신경 쓴다면, 데이터 분류를 아주 깔끔하게 할 수 있답니다! 🚀
'컴퓨터 과학 > 데이터 베이스' 카테고리의 다른 글
| SQL에서 GROUP BY 사용 시 반드시 지켜야 할 규칙 (2) | 2025.08.17 |
|---|---|
| MySQL SUBSTRING 함수로 데이터 가공하기 (1) | 2025.08.17 |
| MySQL CASE문으로 조건 분기하기 (0) | 2025.08.17 |
| MySQL CONCAT 함수 사용하기 (0) | 2025.08.17 |
| MySQL COALESCE 함수 사용하기 (0) | 2025.08.17 |