Oracle 기준으로 다음 SQL 을 실행한 결과로 옳은 것은?수강학번… | [SQLD] SQL 개발자 기출유형 모의고사 2회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 2회
Oracle 기준으로 다음 SQL 을 실행한 결과로 옳은 것은?수강
| 학번 | 강좌코드 | 등급 |
|---|---|---|
| 2026101 | K1 | A |
| 2026102 | K1 | B |
| 2026103 | K1 | (null) |
| 2026104 | K1 | C |
| 2026105 | K1 | B |
SELECT 학번,
DECODE(등급, 'A', '우수', 'B', '보통', '미흡') AS 평가
FROM 수강
ORDER BY 학번;1
| 학번 | 평가 |
|---|---|
| 2026101 | 우수 |
| 2026102 | 보통 |
| 2026103 | 미흡 |
| 2026104 | 미흡 |
| 2026105 | 보통 |
2
| 학번 | 평가 |
|---|---|
| 2026101 | 우수 |
| 2026102 | 보통 |
| 2026103 | (null) |
| 2026104 | (null) |
| 2026105 | 보통 |
3
| 학번 | 평가 |
|---|---|
| 2026101 | 우수 |
| 2026102 | 보통 |
| 2026103 | 미흡 |
| 2026104 | (null) |
| 2026105 | 보통 |
4
| 학번 | 평가 |
|---|---|
| 2026101 | 우수 |
| 2026102 | 보통 |
| 2026103 | (null) |
| 2026104 | 미흡 |
| 2026105 | 보통 |
해설
DECODE는 등급을 검색값과 차례로 비교해 일치하는 결과를 돌려주고, 어느 것과도 일치하지 않으면 마지막 기본값 '미흡'을 돌려준다.
등급이 C 인 행과 NULL 인 행은 'A'·'B' 어느 쪽과도 일치하지 않으므로 둘 다 '미흡'이 된다.
- NULL 행만 NULL 로 둔 것은 기본값이 NULL 에도 적용된다는 점을 놓쳤다.
- C 행만 NULL 로 둔 것은 기본값을 NULL 전용으로 오해했다.
- 두 행 모두 NULL 로 둔 것은 기본값 인자를 무시했다.
오류나 개정된 내용이 보이면 알려주세요