다음 SQL의 실행 결과로 옳은 것은?[예매]예매번호인원단가할인1212… | [SQLD] SQL 개발자 기출유형 모의고사 9회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 9회
다음 SQL의 실행 결과로 옳은 것은?[예매]
| 예매번호 | 인원 | 단가 | 할인 |
|---|---|---|---|
| 1 | 2 | 12000 | 1000 |
| 2 | 1 | 12000 | (null) |
| 3 | (null) | 9000 | 0 |
| 4 | 3 | 9000 | 3000 |
SELECT 예매번호,
인원 * 단가 AS 정가합,
인원 * 단가 - 할인 AS 결제액
FROM 예매
ORDER BY 예매번호;1
| 예매번호 | 정가합 | 결제액 |
|---|---|---|
| 1 | 24000 | 23000 |
| 2 | 12000 | (null) |
| 3 | (null) | (null) |
| 4 | 27000 | 24000 |
2
| 예매번호 | 정가합 | 결제액 |
|---|---|---|
| 1 | 24000 | 23000 |
| 2 | 12000 | 12000 |
| 3 | (null) | (null) |
| 4 | 27000 | 24000 |
3
| 예매번호 | 정가합 | 결제액 |
|---|---|---|
| 1 | 24000 | 23000 |
| 2 | 12000 | (null) |
| 3 | 0 | 0 |
| 4 | 27000 | 24000 |
4
| 예매번호 | 정가합 | 결제액 |
|---|---|---|
| 1 | 24000 | 22000 |
| 2 | 12000 | (null) |
| 3 | (null) | (null) |
| 4 | 27000 | 18000 |
해설
산술식에 NULL 이 하나라도 있으면 결과는 NULL이므로 할인이 NULL 인 예매번호 2 는 결제액이, 인원이 NULL 인 3 은 정가합과 결제액이 모두 NULL 이다.
곱셈이 뺄셈보다 먼저 계산되어 1은 24000-1000=23000, 4는 27000-3000=24000 이다.
- NULL 을 0으로 보고 빼면 2의 결제액이 12000 이 되지만 실제는 NULL 이다.
- NULL 과의 곱도 0이 아니라 NULL 이므로 3을 0으로 보면 틀린다.
- 단가-할인을 먼저 계산하면 22000·18000 이 나오지만 우선순위와 다르다.
오류나 개정된 내용이 보이면 알려주세요