Intermediate SQL: CASE
Intermediate SQL: CASE
Description
CASE 문은 SQL에서 조건에 따라 서로 다른 값을 반환할 때 사용하는 조건문이다. 프로그래밍 언어의 if-else 문과 유사하며, 데이터 값을 분류하거나 새로운 파생 컬럼을 만들 때 자주 사용된다. CASE 문은 SELECT, WHERE, ORDER BY 등 다양한 절에서 사용할 수 있다.
Syntax
CASE 문은 조건을 순서대로 평가한 뒤, 가장 먼저 참이 되는 조건의 결과를 반환한다. 모든 조건이 거짓일 경우 ELSE 값이 반환되며, ELSE 가 없으면 결과는 NULL 이 된다.
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE result
END
Example
Basic CASE
reviews 테이블에서 별점(stars)에 따라 리뷰 등급을 분류한다.
SELECT
review_id,
stars,
CASE
WHEN stars >= 4 THEN 'Good'
WHEN stars >= 2 THEN 'Average'
ELSE 'Bad'
END AS review_rating
FROM reviews;
CASE with Numeric Result
주문 금액에 따라 할인율을 계산한다.
SELECT
order_id,
amount,
CASE
WHEN amount >= 100 THEN amount * 0.9
WHEN amount >= 50 THEN amount * 0.95
ELSE amount
END AS discounted_amount
FROM orders;
CASE in ORDER BY
별점이 높은 리뷰를 먼저 정렬한다.
SELECT review_id, stars
FROM reviews
ORDER BY
CASE
WHEN stars = 5 THEN 1
WHEN stars = 4 THEN 2
ELSE 3
END;
Reference
This post is licensed under CC BY 4.0 by the author.