본문으로 건너뛰기
실습하기

CASE 표현식

CASE 표현식을 사용하면 SQL 쿼리에 조건부 로직을 추가할 수 있습니다.

프로그래밍에서 ifswitch 문을 쓰는 것과 비슷합니다. 조건에 따라 서로 다른 값을 반환할 수 있습니다.


문법

CASE를 사용해 SQL 쿼리에 조건부 로직을 추가할 수 있습니다.

CASE 문법
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END

CASESELECT, ORDER BY, WHERE, 심지어 윈도 함수 내부에서도 사용할 수 있습니다.


예시: 코스 진행 상태

코드프렌즈 데이터셋을 사용해, 코스 진행 정도에 따라 사용자를 분류해 보겠습니다.

course_progress

user_idcourse_nameprogress_percent
1SQL Basics100
2SQL Basics85
3SQL Basics70
4SQL Basics55
5SQL Basics30

CASE를 사용해 각 사용자에게 레이블을 붙일 수 있습니다.

코스 완료 상태 지정
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_idcourse_nameprogress_percentcompletion_status
1SQL Basics100Completed
2SQL Basics85Almost done
3SQL Basics70Halfway
4SQL Basics55Halfway
5SQL Basics30Just started

CASE 사용 방법

CASE를 사용하면 규칙에 따라 데이터를 분류하거나 라벨링하고, 조건에 따라 값을 치환하며, 별도의 코드를 작성하지 않고도 쿼리 안에 직접 로직을 넣을 수 있습니다.

특히 보고서, 대시보드, 분석 작업에서 유용합니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!