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;
```
정답: 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 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.