패턴으로 문자열을 자르는 함수
REGEXP_SUBSTR (컬럼, 패턴, 1, 1) // 패턴은 정규식으로 표현
SELECT REGEXP_SUBSTR ('경기 부천시 경인로 30번길 31', '[^31]+', 1, 1) // 3, 1 패턴으로 잘라낸다
FROM DUAL
=> '경기 부천시 경인로 '
=> '30번길'의 '3'이 패턴 '3'에 걸리기 때문에 '31'에서 잘리는 '경기 부천시 경인로 30번길 ' 가 아닌 '30번길'의 '3'에서 잘리는 '경기 부천시 경인로 '가 리턴 된다.
속성A
를 속성B
패턴으로 자를 수 있음!
REGEXP_SUBSTR(속성A, '[^'||속성B||']+', 1, 1)
SELECT REGEXP_SUBSTR(road_addr, '[^'||bld_mng_no||']+', 1, 1)
FROM DUAL
String.substring() 의 기능을 제공하는 함수
SUBSTR(컬럼, start, end)
SELECT SUBSTR('hello world', 0, 2)
FROM DUAL
=> 'he'
문자열 내, 문자 또는 문자열의 시작 인덱스Index + 1
를 구하는 함수
INSTR(문자열1, 문자 OR 문자열)
SELECT INSTR('hello world', 'h') FROM DUAL
=> 1
SELECT INSTR('hello world', 'hello') FROM DUAL
=> 1
SELECT INSTR('hello world', 'world') FROM DUAL
=> 7
SELECT INSTR('hello world', 'rld') FROM DUAL
=> 9
컬럼A:서울특별시 구로구 디지털로31길 109
에서 컬럼B:109
를 잘라내어 결과:서울특별시 구로구 디지털로31길
를 리턴하려면?
-- road_addr: 서울특별시 구로구 디지털로31길 109
-- bld_no: 109
-- 일 때,
SELECT RTRIM(SUBSTR(road_addr, 0, INSTR(road_addr, bld_no) - 1))
FROM 테이블