Oracle 기준으로 다음 SQL 의 실행 결과로 옳은 것은?[송장]송… | [SQLD] SQL 개발자 기출유형 모의고사 8회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 8회
Oracle 기준으로 다음 SQL 의 실행 결과로 옳은 것은?

[송장]

송장번호
SE-12-0300
BU7-4410
GJ-905
IC-X
SELECT 송장번호,
       REGEXP_SUBSTR(송장번호, '[0-9]+') AS 숫자1,
       REGEXP_REPLACE(송장번호, '-[0-9]+', '') AS 정리
  FROM 송장
 ORDER BY 송장번호;
1
송장번호숫자1정리
BU7-44104410BU7
GJ-905905GJ
IC-X(null)IC-X
SE-12-030012SE
2
송장번호숫자1정리
BU7-44107BU7
GJ-905905GJ
IC-X(null)IC-X
SE-12-030012SE
3
송장번호숫자1정리
BU7-44107BU7
GJ-905905GJ
IC-X(null)(null)
SE-12-030012SE
4
송장번호숫자1정리
BU7-44107BU7
GJ-905905GJ
IC-X(null)IC-X
SE-12-030012SE-0300
해설

REGEXP_SUBSTR 는 왼쪽부터 찾은 첫 번째 일치를 돌려주므로 BU7-4410 은 7, 숫자가 없는 IC-X 는 NULL 이다.

Oracle 의 REGEXP_REPLACE 는 발생 위치를 주지 않으면 모든 일치를 바꾸므로 SE-12-0300 의 -12 와 -0300 이 함께 지워지고, 일치가 없는 IC-X 는 원문 그대로 남는다.

  • BU7-4410 이 4410 인 결과는 가장 긴 숫자를 고른다고 본 경우이다.
  • SE-0300 결과는 첫 번째 일치만 바꾼다고 본 경우이다.
  • IC-X 의 정리가 NULL 인 결과는 일치가 없으면 NULL 을 돌려준다고 본 경우이다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 8회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기