다음 두 쿼리의 결과는 어떻게 다른가요?

UnitsOnOrder가 NULL인 레코드에 대

과목: MySQL

문제 번호: 3191

medium
다음 두 쿼리의 결과는 어떻게 다른가요?
-- 쿼리 A
SELECT ProductName, UnitPrice * (UnitsInStock + UnitsOnOrder) FROM Products;

-- 쿼리 B
SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0)) FROM Products;

UnitsOnOrder가 NULL인 레코드에 대해:
A. 두 쿼리 모두 같은 결과를 반환합니다
B. 쿼리 A는 NULL을 반환하고, 쿼리 B는 실제 계산값을 반환합니다
C. 쿼리 A는 0을 반환하고, 쿼리 B는 NULL을 반환합니다
D. 두 쿼리 모두 오류가 발생합니다

정답: B



⦁ 쿼리 A의 문제점:
⦁ UnitsOnOrder가 NULL이면 전체 계산식이 NULL이 됩니다
⦁ 실제 재고 가치를 계산할 수 없습니다

⦁ 쿼리 B의 장점:
⦁ IFNULL(UnitsOnOrder, 0)으로 NULL을 0으로 처리
⦁ UnitPrice * (UnitsInStock + 0) = 실제 계산 가능

⦁ 실무 의미: 주문 대기량이 없다면 0으로 간주하는 것이 합리적

⦁ NULL 처리는 데이터 분석에서 매우 중요한 부분입니다

💡 학습 팁

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