MySQL CASE 문
MySQL CASE 문
문 은 CASE
조건을 통과하고 첫 번째 조건이 충족될 때 값을 반환합니다(예: if-then-else 문). 따라서 조건이 true이면 읽기를 중지하고 결과를 반환합니다. 조건이 참이 아니면 ELSE
절의 값을 반환합니다.
부분 이 ELSE
없고 조건이 참이 아니면 NULL을 반환합니다.
CASE 구문
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN
conditionN THEN resultN
ELSE result
END;
데모 데이터베이스
다음은 Northwind 샘플 데이터베이스의 "OrderDetails" 테이블에서 선택한 항목입니다.
OrderDetailID | OrderID | ProductID | Quantity |
---|---|---|---|
1 | 10248 | 11 | 12 |
2 | 10248 | 42 | 10 |
3 | 10248 | 72 | 5 |
4 | 10249 | 14 | 9 |
5 | 10249 | 51 | 40 |
MySQL CASE 예제
다음 SQL은 조건을 통과하고 첫 번째 조건이 충족될 때 값을 반환합니다.
예시
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;
다음 SQL은 City별로 고객을 주문합니다. 그러나 City가 NULL이면 국가별로 주문하십시오.
예시
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
WHEN City IS NULL THEN Country
ELSE City
END);