다음 [강좌] 테이블에서 하이픈(-) 뒤의 번호만 꺼내 원하는 결과를 … | [SQLD] SQL 개발자 기출유형 모의고사 7회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 7회
다음 [강좌] 테이블에서 하이픈(-) 뒤의 번호만 꺼내 원하는 결과를 얻으려 한다. ( ㉠ )에 들어갈 식으로 옳은 것은? (Oracle 기준)[강좌]
| 강좌코드 | 강좌명 |
|---|---|
| EN-101 | 영어회화 |
| MATH-202 | 수학심화 |
| SCI-35 | 과학탐구 |
| KR-7 | 국어독해 |
SELECT 강좌코드,
( ㉠ ) AS 번호
FROM 강좌
ORDER BY 강좌코드;[원하는 결과]
| 강좌코드 | 번호 |
|---|---|
| EN-101 | 101 |
| KR-7 | 7 |
| MATH-202 | 202 |
| SCI-35 | 35 |
1
SUBSTR(강좌코드, INSTR(강좌코드, '-') + 1)
2
REPLACE(강좌코드, '-', '')
3
RTRIM(강좌코드, '0123456789')
4
SUBSTR(강좌코드, -3)
해설
INSTR 로 하이픈 위치를 찾고 그다음 칸부터 SUBSTR 로 끝까지 자르면 앞 글자 수와 번호 자릿수가 달라도 101·7·202·35 를 정확히 얻는다.
SUBSTR 의 길이 인수를 생략하면 시작 위치부터 문자열 끝까지 반환한다.
- 뒤에서 3자를 자르면 SCI-35 는 -35, KR-7 은 R-7 이 된다.
- REPLACE 는 하이픈만 지워 EN101 처럼 앞 글자가 남는다.
- RTRIM 은 오른쪽 숫자를 지워 EN- 같은 앞부분만 남긴다.
오류나 개정된 내용이 보이면 알려주세요