컴퓨터 과학/데이터 베이스

MySQL CASE 문 실행 순서 이해하기

Data Jun 2025. 8. 17. 21:21

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

 

동작 원리 예시

  1. price/cost = 2.0
    • 첫 번째 조건 (>=1.7) 만족 → 'A. 고효율 메뉴' 반환 후 종료
  2. price/cost = 1.6
    • 첫 번째 조건 불만족
    • 두 번째 조건 (>=1.5) 만족 → 'B. 중효율 메뉴' 반환 후 종료
  3. price/cost = 1.2
    • 위 두 조건 불만족
    • 세 번째 조건 (>=1) 만족 → 'C. 저효율 메뉴' 반환 후 종료
  4. price/cost = 0.8
    • 모든 조건 불만족
    • ELSE 실행 → '분류 불가' 반환

핵심 포인트

  • CASE 문은 위에서부터 순차적으로 검사한다.
  • 처음으로 만족한 조건만 실행되고 종료되므로, 뒤의 조건은 무시된다.
  • 따라서 구간이 겹칠 수 있는 경우에도, 큰 구간 → 작은 구간 순서로 작성하면 충돌 없이 깔끔하게 처리할 수 있다.

정리하자면, CASE 문은 일종의 if-else if-else 구조와 동일합니다.
조건 순서만 잘 신경 쓴다면, 데이터 분류를 아주 깔끔하게 할 수 있답니다! 🚀