다음 SQL의 실행 결과로 옳은 것은?[재고월]품목코드기초입고출고P11… | [SQLD] SQL 개발자 기출유형 모의고사 8회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 8회
다음 SQL의 실행 결과로 옳은 것은?[재고월]
| 품목코드 | 기초 | 입고 | 출고 |
|---|---|---|---|
| P1 | 10 | 5 | 3 |
| P2 | 8 | (null) | 2 |
| P3 | (null) | 4 | 1 |
| P4 | 6 | 3 | (null) |
SELECT 품목코드,
기초 + 입고 - 출고 AS 기말1,
기초 + COALESCE(입고, 0) - COALESCE(출고, 0) AS 기말2
FROM 재고월
ORDER BY 품목코드;1
| 품목코드 | 기말1 | 기말2 |
|---|---|---|
| P1 | 12 | 12 |
| P2 | (null) | 6 |
| P3 | (null) | 3 |
| P4 | (null) | 9 |
2
| 품목코드 | 기말1 | 기말2 |
|---|---|---|
| P1 | 12 | 12 |
| P2 | (null) | 6 |
| P3 | 3 | 3 |
| P4 | (null) | 9 |
3
| 품목코드 | 기말1 | 기말2 |
|---|---|---|
| P1 | 12 | 12 |
| P2 | (null) | 6 |
| P3 | (null) | (null) |
| P4 | (null) | 9 |
4
| 품목코드 | 기말1 | 기말2 |
|---|---|---|
| P1 | 12 | 12 |
| P2 | 6 | 6 |
| P3 | (null) | (null) |
| P4 | 9 | 9 |
해설
NULL 이 섞인 산술식은 결과가 NULL이 되므로 기말1 은 NULL 이 없는 P1 만 12 이고 나머지는 모두 NULL 이다.
기말2 는 입고·출고만 COALESCE로 0 으로 바꿔 P2=6, P4=9 가 되지만, 기초가 NULL 인 P3 은 여전히 NULL 이다.
- P3 의 기초는 COALESCE 대상이 아니어서 기말2 가 3 이 될 수 없다.
- 기말1 은 NULL 을 0 으로 바꾸지 않으므로 P2·P4 가 NULL 이다.
- P3 은 기초가 NULL 이라 두 식 모두 NULL 이다.
오류나 개정된 내용이 보이면 알려주세요