SQL - 문제 미리보기

문제 1710

hard
다음 쿼리에서 빈칸에 들어갈 올바른 구문은?
```sql
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
______ City IS NULL THEN Country
ELSE City
______);
```
A. `WHEN`, `END`
B. `IF`, `ENDIF`
C. `WHERE`, `GROUP BY`
D. `HAVING`, `ORDER BY`

정답: A


ORDER BY 절에서 CASE 표현식을 활용한 고급 정렬 로직:

쿼리의 목적:

• 고객 정보를 정렬하되, 동적 정렬 기준 적용
• City가 있으면 City로 정렬
• City가 NULL이면 Country로 정렬

CASE in ORDER BY의 활용:
```sql
ORDER BY (
CASE
WHEN City IS NULL THEN Country -- City가 없으면 Country 값 사용
ELSE City -- City가 있으면 City 값 사용
END
)
```
실행 과정:

1. 각 행마다 CASE 평가: City의 NULL 여부 확인
2. 정렬 키 결정: NULL이면 Country, 아니면 City
3. 통합 정렬: 결정된 값들로 전체 정렬 수행

💡 학습 팁

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