CASE 표현식
CASE
표현식을 사용하면 SQL 쿼리에 조건부 로직을 추가할 수 있습니다.
프로그래밍에서 if
나 switch
문을 쓰는 것과 비슷합니다. 조건에 따라 서로 다른 값을 반환할 수 있습니다.
문법
CASE
를 사용해 SQL 쿼리에 조건부 로직을 추가할 수 있습니다.
CASE 문법
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
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 |
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_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 |
CASE 사용 방법
CASE
를 사용하면 규칙에 따라 데이터를 분류하거나 라벨링하고, 조건에 따라 값을 치환하며, 별도의 코드를 작성하지 않고도 쿼리 안에 직접 로직을 넣을 수 있습니다.
특히 보고서, 대시보드, 분석 작업에서 유용합니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!