Skip to content

31. CASE


1. CASE Statement

  • CASE 문은 조건을 통과하여 if-then-else 명령문 등의 첫 번째 조건을 충족하는 값을 반환한다.
  • 따라서 조건이 참이면 읽기를 중지하고 결과를 반환하고, 조건이 참이 아니면 ELSE 절의 값을 반환한다.
  • 만약 ELSE 부분에서 해당하지 않는 조건인 경우 NULL을 반환한다.


2. Syntax

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END;


Demo Database

  • 다음은 Northwind 샘플 데이터베이스의 OrderDetails 테이블이다.


001


3. CASE Examples

  • 다음은 조건을 통과하여 첫 번째 조건이 충족될 때 값을 반환한다.


SELECT OrderID, Quantity,
CASE
    WHEN Quantity > 30 THEN 'The quantity is greater than 30'
    WHEN Quantity = 30 THEN 'The quantity is 30'
    ELSE 'The quantity is under 30'
END AS QuantityText
FROM OrderDetails;


  • 다음은 City별로 고객을 정렬하는데, 만약 CityNULL이라면 국가별로 정렬한다.


SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
    WHEN City IS NULL THEN Country
    ELSE City
END);

References