다음 SQL의 실행 결과로 옳은 것은?[출고]출고번호수량O1120O25… | [SQLD] SQL 개발자 기출유형 모의고사 8회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 8회
다음 SQL의 실행 결과로 옳은 것은?[출고]
| 출고번호 | 수량 |
|---|---|
| O1 | 120 |
| O2 | 50 |
| O3 | (null) |
| O4 | 30 |
| O5 | 100 |
SELECT 출고번호,
CASE WHEN 수량 >= 50 THEN '중량'
WHEN 수량 >= 100 THEN '대량'
WHEN 수량 < 50 THEN '소량'
END AS 구분
FROM 출고
ORDER BY 출고번호;1
| 출고번호 | 구분 |
|---|---|
| O1 | 대량 |
| O2 | 중량 |
| O3 | (null) |
| O4 | 소량 |
| O5 | 중량 |
2
| 출고번호 | 구분 |
|---|---|
| O1 | 대량 |
| O2 | 중량 |
| O3 | (null) |
| O4 | 소량 |
| O5 | 대량 |
3
| 출고번호 | 구분 |
|---|---|
| O1 | 중량 |
| O2 | 중량 |
| O3 | (null) |
| O4 | 소량 |
| O5 | 중량 |
4
| 출고번호 | 구분 |
|---|---|
| O1 | 중량 |
| O2 | 중량 |
| O3 | 소량 |
| O4 | 소량 |
| O5 | 중량 |
해설
검색형 CASE 는 WHEN 을 위에서부터 평가해 처음 참이 되는 조건 하나만 적용하므로 120·100 도 첫 조건 수량 >= 50 에 걸려 중량이 된다.
수량이 NULL 인 O3 은 모든 비교가 UNKNOWN 이고 ELSE 가 없어 NULL 을 반환한다.
- 뒤쪽 WHEN 수량 >= 100 은 앞 조건에 가려 한 번도 적용되지 않는다.
- NULL 은 수량 < 50 도 참이 아니어서 소량이 되지 않는다.
- 100 을 넘는 120 도 첫 조건에서 끝나 대량이 될 수 없다.
오류나 개정된 내용이 보이면 알려주세요