CASE 표현식
CASE
표현식은 SQL 쿼리에 조건부 로직을 추가할 때 사용됩니다.
프로그래밍에서 if
또는 switch
문처럼 조건에 따라 다른 값을 반환할 수 있어 데이터 분류와 가공에 유용합니다.
문법
CASE 문법
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
WHEN
뒤에 조건을 작성하고, 조건이 참이면 해당THEN
값이 반환됩니다.- 조건을 만족하지 않으면
ELSE
뒤의 값이 반환됩니다. ELSE
는 선택 사항이며 생략할 수 있습니다.
CASE
는 SELECT
, ORDER BY
, WHERE
등 다양한 절에서 사용할 수 있습니다.
예시: 강의 진행 상태 분류
다음은 학습자의 강의 진행률에 따라 상태를 분류하는 예시입니다.
course_progress
user_id | course_name | progress_percent |
---|---|---|
1 | SQL Basics | 100 |
2 | SQL Basics | 85 |
3 | SQL Basics | 70 |
4 | SQL Basics | 55 |
5 | SQL Basics | 30 |
진행 상태 지정
SELECT
user_id,
course_name,
progress_percent,
CASE
WHEN progress_percent = 100 THEN 'Completed'
WHEN progress_percent >= 75 THEN 'Almost done'
WHEN progress_percent >= 50 THEN 'Halfway'
ELSE 'Just started'
END AS completion_status
FROM course_progress;
결과
user_id | course_name | progress_percent | completion_status |
---|---|---|---|
1 | SQL Basics | 100 | Completed |
2 | SQL Basics | 85 | Almost done |
3 | SQL Basics | 70 | Halfway |
4 | SQL Basics | 55 | Halfway |
5 | SQL Basics | 30 | Just started |
활용 예시
- 규칙에 따라 데이터를 분류하거나 라벨링할 때
- 조건에 따라 값을 변환하거나 치환할 때
- 별도의 프로그래밍 로직 없이 SQL 쿼리 에서 조건 처리를 수행할 때
보고서, 대시보드, 데이터 분석에서 CASE
표현식은 매우 유용합니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!