SQL - 문제 미리보기

문제 1709

medium
다음 쿼리의 실행 결과에서 Quantity가 30인 주문의 Category 값은? ```sql SELECT OrderID, Quantity, CASE WHEN Quantity > 30 THEN 'High' WHEN Quantity = 30 THEN 'Exact' WHEN Quantity > 20 THEN 'Medium' ELSE 'Low' END AS Category FROM OrderDetails; ```
A. 'High'
B. 'Exact'
C. 'Medium'
D. 'Low'

정답: B

CASE 표현식의 순차적 평가 원리 이해: CASE의 핵심 특징: • 위에서 아래로 순서대로 조건 검사 • 첫 번째로 참인 조건에서 즉시 결과 반환 • 이후 조건들은 평가하지 않음 (Short Circuit) Quantity = 30일 때의 평가 과정: 1단계: 첫 번째 조건 검사 ```sql WHEN Quantity > 30 THEN 'High' -- 30 > 30은 거짓이므로 다음으로 ``` 2단계: 두 번째 조건 검사 ```sql WHEN Quantity = 30 THEN 'Exact' -- 30 = 30은 참이므로 'Exact' 반환하고 종료 ``` 3단계: 나머지 조건들 ```sql WHEN Quantity > 20 THEN 'Medium' -- 평가되지 않음 ELSE 'Low' -- 평가되지 않음 ``` 중요한 개념 - 조건 순서의 중요성: • 만약 `Quantity > 20` 조건이 먼저 왔다면? • 30 > 20이 참이므로 'Medium'이 반환됨 • 더 구체적인 조건을 먼저 배치해야 함

💡 학습 팁

이 문제를 포함한 SQL 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.