Oracle 기준으로 다음 SQL의 실행 결과로 옳은 것은? (대출일·… | [SQLD] SQL 개발자 기출유형 모의고사 5회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 5회
Oracle 기준으로 다음 SQL의 실행 결과로 옳은 것은? (대출일·반납일은 시각이 0시인 DATE 이며, 반납 기한은 대출일로부터 14일이다)[대출]
| 대출번호 | 대출일 | 반납일 |
|---|---|---|
| L1 | 2026-03-01 | 2026-03-15 |
| L2 | 2026-03-01 | 2026-03-20 |
| L3 | 2026-02-20 | 2026-03-10 |
| L4 | 2026-03-10 | (null) |
| L5 | 2026-03-05 | 2026-03-18 |
SELECT 대출번호, 반납일 - (대출일 + 14) AS 연체일수 FROM 대출 WHERE 반납일 > 대출일 + 14 ORDER BY 대출번호;
1
| 대출번호 | 연체일수 |
|---|---|
| L2 | 5 |
| L3 | 4 |
2
| 대출번호 | 연체일수 |
|---|---|
| L2 | 5 |
| L3 | 6 |
3
| 대출번호 | 연체일수 |
|---|---|
| L2 | 5 |
| L3 | 4 |
| L4 | (null) |
4
| 대출번호 | 연체일수 |
|---|---|
| L1 | 0 |
| L2 | 5 |
| L3 | 4 |
해설
DATE 에 14 를 더하면 14일 뒤 날짜가 되고 두 DATE 를 빼면 일수가 나오므로, 기한을 넘긴 L2 는 5일, 2월 20일 대출로 기한이 3월 6일인 L3 은 4일이다.
L1 은 기한 당일 반납이라 > 조건을 통과하지 못하고, 반납일이 NULL 인 L4 는 비교가 UNKNOWN이라 빠진다.
- L1 을 0일로 넣은 표는 > 를 >= 처럼 해석했다.
- L3 을 6일로 본 표는 2026년 2월을 30일로 계산했다.
- L4 를 NULL 로 넣은 표는 NULL 비교 행이 남는다고 오해했다.
오류나 개정된 내용이 보이면 알려주세요