Oracle 에서 다음 SQL 을 실행한 결과로 옳은 것은?[회원]회원… | [SQLD] SQL 개발자 기출유형 모의고사 2회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 2회
Oracle 에서 다음 SQL 을 실행한 결과로 옳은 것은?[회원]
| 회원ID | 연락처 |
|---|---|
| m01 | 010-1234-5678 |
| m02 | 02-987-6543 |
| m03 | 031-55-0909 |
SELECT 회원ID,
REGEXP_SUBSTR(연락처, '[0-9]+', 1, 2) AS 중간,
REGEXP_INSTR(연락처, '-', 1, 2) AS 위치
FROM 회원
ORDER BY 회원ID;1
| 회원ID | 중간 | 위치 |
|---|---|---|
| m01 | 1234 | 9 |
| m02 | 987 | 7 |
| m03 | 55 | 7 |
2
| 회원ID | 중간 | 위치 |
|---|---|---|
| m01 | 1234 | 8 |
| m02 | 987 | 6 |
| m03 | 55 | 6 |
3
| 회원ID | 중간 | 위치 |
|---|---|---|
| m01 | 1234 | 4 |
| m02 | 987 | 3 |
| m03 | 55 | 4 |
4
| 회원ID | 중간 | 위치 |
|---|---|---|
| m01 | 10 | 9 |
| m02 | 2 | 7 |
| m03 | 31 | 7 |
해설
세 번째 인수 1은 시작 위치, 네 번째 인수 2는 두 번째 일치를 뜻하므로 숫자 묶음은 1234·987·55, 두 번째 하이픈 위치는 9·7·7이다.
REGEXP_INSTR는 문자열 첫 글자를 1로 세며, 010-1234-5678에서 두 번째 하이픈은 9번째 글자다.
- 10·2·31이 나온 표는 2를 시작 위치로 오해해 둘째 글자부터 첫 묶음을 자른 것이다.
- 8·6·6은 위치를 0부터 센 값이다.
- 4·3·4는 첫 번째 하이픈의 위치다.
오류나 개정된 내용이 보이면 알려주세요