Oracle 기준으로 ㉠과 ㉡의 결과 행 수를 순서대로 나열한 것은?[… | [SQLD] SQL 개발자 기출유형 모의고사 8회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 8회
Oracle 기준으로 ㉠과 ㉡의 결과 행 수를 순서대로 나열한 것은?[분기입고]
| 품번 | Q1 | Q2 | Q3 |
|---|---|---|---|
| P1 | 10 | 0 | 20 |
| P2 | 5 | (null) | 15 |
| P3 | (null) | (null) | (null) |
㉠ SELECT 품번, 분기, 수량
FROM 분기입고
UNPIVOT (수량 FOR 분기 IN (Q1, Q2, Q3));
㉡ SELECT 품번, 분기, 수량
FROM 분기입고
UNPIVOT INCLUDE NULLS
(수량 FOR 분기 IN (Q1, Q2, Q3));1
9, 9
2
6, 9
3
5, 9
4
4, 9
해설
UNPIVOT 은 기본값이 EXCLUDE NULLS 라 값이 NULL 인 칸은 행으로 만들지 않으므로 ㉠은 9칸 중 NULL 4칸을 뺀 5행이다.
㉡의 INCLUDE NULLS 는 NULL 칸도 행으로 만들어 3행×3열=9행이 되고, 모두 NULL 인 P3 도 세 행으로 나온다.
- 4, 9 는 P1 의 Q2 값 0 까지 NULL 처럼 제외한 경우이다.
- 6, 9 는 값이 모두 NULL 인 P3 를 한 행으로 남긴다고 본 경우이다.
- 9, 9 는 기본 동작이 NULL 을 포함한다고 본 경우이다.
오류나 개정된 내용이 보이면 알려주세요