SQL을 배우다 보면 꼭 마주치는 문법 중 하나가 CASE WHEN ELSE 구문입니다.
이 구문은 조건에 따라 값을 다르게 표현할 수 있도록 해주는 일종의 if문 역할을 해요.
이 글에서는 CASE WHEN ELSE의 기본 사용법부터, 실전에서 자주 쓰이는 활용 예제와 실력자 팁까지 소개합니다.
✅ 1. CASE WHEN ELSE란?
CASE는 SQL에서 조건 분기(조건문)를 처리할 수 있는 키워드입니다.
가장 기본적인 구조는 다음과 같아요:
SELECT
CASE
WHEN 조건1 THEN 결과1
WHEN 조건2 THEN 결과2
ELSE 기본값
END AS 별칭
FROM 테이블명;
🧠 쉽게 말하면?
- WHEN → 조건이 맞으면
- THEN → 이 값을 출력해!
- ELSE → 위 조건 다 안 맞으면 이 값 출력!
- END → 여기서 조건문 끝!
- AS 별칭 → 결과에 붙일 이름
🔍 2. 예제로 배우는 CASE
예제 1. 점수에 따른 학점 분류
SELECT
name,
score,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
ELSE 'F'
END AS grade
FROM students;
→ 결과적으로 각 학생의 점수(score)에 따라 학점(grade)을 계산해주는 쿼리입니다.
💡 3. 실전 활용 팁 3가지
✅ 팁 1. CASE는 SELECT뿐 아니라 WHERE, ORDER BY에도 사용 가능!
SELECT *
FROM orders
WHERE
CASE
WHEN status = 'cancelled' THEN 'no'
ELSE 'yes'
END = 'yes';
→ 단, WHERE에서 CASE를 쓰는 건 가독성이 떨어질 수 있으므로 주의!
보통 SELECT, ORDER BY, GROUP BY에서 더 자주 활용됩니다.
✅ 팁 2. CASE를 ORDER BY에 써서 조건 정렬 가능!
SELECT name, role
FROM employees
ORDER BY
CASE role
WHEN 'manager' THEN 1
WHEN 'staff' THEN 2
ELSE 3
END;
→ manager > staff > 기타 순으로 정렬하고 싶을 때 아주 유용합니다.
✅ 팁 3. CASE는 중첩도 가능!
SELECT
name,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN
CASE
WHEN score >= 85 THEN 'B+'
ELSE 'B'
END
ELSE 'C 이하'
END AS grade_detail
FROM students;
→ 조건 안에 조건이 들어가 있는 구조. 너무 복잡하면 유지보수가 어려워지니 조심해서 사용하세요!
⚠️ 주의할 점

📌 정리하자면

✨ 결론 & 마무리
SQL의 CASE WHEN ELSE는 초보자에게는 조금 생소할 수 있지만, 익숙해지면 데이터를 더 풍부하게 표현할 수 있는 강력한 무기입니다.
특히 리포트용 쿼리 작성이나, 조건별 요약 데이터를 만들 때 정말 자주 쓰여요.
숙련자 Tip 💡
자주 쓰는 조건 분기를 뷰(View)나 CTE(Common Table Expression)로 따로 뽑아두면
가독성도 좋고 유지보수도 편해집니다!
'국비지원 - 실버마케팅(코딩) 250206~' 카테고리의 다른 글
| "SQL에서 FROM에 어떤 테이블을 넣어야 할까?" (2) | 2025.05.16 |
|---|---|
| "DB한테도 함수를 쓰라고요? 프로시저로 말하는 개발자 되기" (0) | 2025.05.16 |
| 🌐 SQL JOIN 완전 기초 정리 — 공식 언어가 영어인 나라 찾기 예제로 배우기 (3) | 2025.05.16 |
| [SQL 기초 완전 정복] FROM이 들어가는 구문 vs 안 들어가는 구문, 왜 다를까? (2) | 2025.05.15 |
| 💾 SQL 기초 정리: 데이터베이스 & 테이블 생성법 완전 가이드 (0) | 2025.05.15 |