Oracle 기준으로 다음 SQL을 실행한 결과로 옳은 것은?[상품]상… | [SQLD] SQL 개발자 기출유형 모의고사 1회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 1회
Oracle 기준으로 다음 SQL을 실행한 결과로 옳은 것은?[상품]
| 상품코드 | 가격 |
|---|---|
| KR-1001 | 15480 |
| US-22 | 9950 |
| JP-305 | 1205 |
SELECT LPAD(상품코드, 6, '#') AS 코드,
ROUND(가격, -2) AS 반올림,
MOD(가격, 100) AS 나머지
FROM 상품
ORDER BY 가격 DESC;1
| 코드 | 반올림 | 나머지 |
|---|---|---|
| KR-100 | 15400 | 80 |
| #US-22 | 9900 | 50 |
| JP-305 | 1200 | 5 |
2
| 코드 | 반올림 | 나머지 |
|---|---|---|
| KR-100 | 15500 | 80 |
| #US-22 | 10000 | 50 |
| JP-305 | 1200 | 5 |
3
| 코드 | 반올림 | 나머지 |
|---|---|---|
| KR-1001 | 15500 | 80 |
| #US-22 | 10000 | 50 |
| JP-305 | 1200 | 5 |
4
| 코드 | 반올림 | 나머지 |
|---|---|---|
| KR-100 | 15500 | 80 |
| US-22# | 10000 | 50 |
| JP-305 | 1200 | 5 |
해설
LPAD는 원본이 지정 길이보다 길면 잘라서 KR-1001이 KR-100이 되고, ROUND(가격, -2)는 십의 자리에서 반올림해 9950을 10000으로 만든다.
MOD(가격, 100)은 100으로 나눈 나머지라 80·50·5가 되며, 행은 가격 내림차순으로 정렬된다.
- KR-1001을 그대로 둔 표는 LPAD의 잘림을 놓쳤다.
- 15400·9900은 반올림이 아니라 TRUNC로 버린 결과이다.
- US-22#은 오른쪽을 채우는 RPAD의 결과이다.
오류나 개정된 내용이 보이면 알려주세요