문제
다음 SQL의 결과는? (Oracle)
SQLSELECT REGEXP_SUBSTR('AB12CD34EF', '[0-9]+', 1, 2), REGEXP_REPLACE('2023-12-31', '([0-9]{4})-([0-9]{2})-([0-9]{2})', '\3/\2/\1') FROM DUAL;
① 34, 31/12/2023 ② 12, 31/12/2023 ③ 34, 2023/12/31 ④ 1234, 31/12/2023
정답
1번
해설
REGEXP_SUBSTR('[0-9]+', 1, 2)는 1번째 위치부터 숫자 패턴을 찾되 2번째 매칭을 반환. '12'가 첫 번째, '34'가 두 번째 매칭이므로 '34'. REGEXP_REPLACE에서 \1=2023, \2=12, \3=31이므로 '\3/\2/\1'은 '31/12/2023'. ②는 첫 번째 매칭 반환. ③은 치환 패턴이 틀림. ④는 연속된 숫자를 하나로 잘못 인식.