다음 두 쿼리의 결과 차이점을 올바르게 설명한 것은?

과목: MySQL

문제 번호: 3188

hard
다음 두 쿼리의 결과 차이점을 올바르게 설명한 것은?
-- 쿼리 A
SELECT ProductName,
CASE
    WHEN Price > 50 THEN 'Expensive'
    WHEN Price > 20 THEN 'Moderate'
    WHEN Price > 0 THEN 'Cheap'
END AS PriceCategory
FROM Products;

-- 쿼리 B
SELECT ProductName,
CASE
    WHEN Price > 50 THEN 'Expensive'
    WHEN Price > 20 THEN 'Moderate'  
    WHEN Price > 0 THEN 'Cheap'
    ELSE 'Invalid'
END AS PriceCategory
FROM Products;
A. 두 쿼리는 동일한 결과를 반환합니다
B. 쿼리 A는 Price가 0이하거나 NULL일 때 NULL을 반환하고, 쿼리 B는 'Invalid'를 반환합니다
C. 쿼리 A는 더 빠르게 실행되고, 쿼리 B는 더 느리게 실행됩니다
D. 쿼리 A는 오류가 발생하고, 쿼리 B만 정상 실행됩니다

정답: B



⦁ ELSE 절의 유무가 핵심 차이점입니다

⦁ 쿼리 A (ELSE 절 없음):
⦁ Price가 0 이하이거나 NULL인 경우 어떤 조건도 만족하지 않습니다
⦁ ELSE 절이 없으므로 NULL을 반환합니다

⦁ 쿼리 B (ELSE 절 있음):
⦁ 모든 조건이 거짓이어도 ELSE 절의 'Invalid'를 반환합니다
⦁ NULL이 반환되는 경우가 없습니다

💡 학습 팁

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