mun dev

[DB] SQL CASE WHEN THEN 구문 사용법 본문

DB

[DB] SQL CASE WHEN THEN 구문 사용법

mndev 2023. 10. 29. 15:29

CASE WHEN THEN

case when then은 조건부 로직을 처리하기 위해 사용됩니다.

조건에 따라 결과를 다르게 반환할 수 있습니다.

 

CASE 기본구조

CASE
    WHEN 조건1 THEN 결과1
    WHEN 조건2 THEN 결과2
    ..
    ELSE 결과
END AS 컬럼명

WHEN으로 조건을 순차적으로 평가해서 참인 경우(THEN)그에 맞는 결과를 반환합니다.

모든 조건이 거짓이라면 ELSE 절의 결과를 반환합니다. ELSE절은 옵션이며 생략이 가능합니다.

만약 ELSE절이 없고 모든 조건이 거짓이면 NULL을 반환합니다.

 

예시1)

예를 들어, 제품 테이블에서 상품 가격에 따라 할인율 지정하고 그 값을 출력하고 싶다고 가정합니다. 이경우 case문을 이용해서 price컬럼의 값이 1000 이상이면 discount_rate컬럼에 '10% 할인'을, 500이상이면 '5% 할인' 을 조건에 부합하지 않으면 '할인 없음'을 반환합니다.

SELECT
    product_name,
    price,
    CASE
    	WHEN price >= 1000 THEN '10% 할인'
        WHEN price >= 500 THEN '5% 할인'
        ELSE '할인 없음'
    END AS discount_rate
FROM products;