문자 나누기 문의 0 2 2,924

by 오라클왕따 [Oracle 기초] [2014.05.29 14:16:49]


날씨가 이제 완전 여름이 되었네요~ 모두들 무더위 조심하세요~^^

강원도 강릉시 사천면 석교리 산 337-1

강원도 강릉시 옥계면 남양리 1901-3

제주특별자치도 제주시 삼도이동 1-1

충청남도 논산시 연무읍 황화정리 산 175

경기도 용인시 처인구 백암면 백봉리 1245-29

 

아래 처럼 나누어 보려고 하는데 도움 부탁드립니다... ^^;;

시도 시군 읍면동 산, 일반 번지
충청남도 논산시  성동면 우곤리 111
제주특별자치도 제주시 용담일동     2581-3
강원도 강릉시 사천면 석교리 337-1
경기도 용인시 처인구 백암면 백봉리   1245-29
by 마농 [2014.05.29 18:30:36]
WITH t AS
(
SELECT '강원도 강릉시 사천면 석교리 산 337-1' addr FROM dual
UNION ALL SELECT '강원도 강릉시 옥계면 남양리 1901-3' FROM dual
UNION ALL SELECT '제주특별자치도 제주시 삼도이동 1-1' FROM dual
UNION ALL SELECT '충청남도 논산시 연무읍 황화정리 산 175' FROM dual
UNION ALL SELECT '경기도 용인시 처인구 백암면 백봉리 1245-29' FROM dual
UNION ALL SELECT '인천광역시 남구 숭의동 1234' FROM dual
)
, p AS
(
SELECT '([^ ]+[시도] )?'
    || '([^ ]+[시군] )?'
    || '([^ ]+[구] )?'
    || '([^ ]+[읍면동로가] )?'
    || '([^ ]+[리] )?'
    || '(산 )?'
    || '(.*)'
    AS pattern
  FROM dual
)
SELECT addr
     , TRIM(REGEXP_REPLACE(addr, pattern, '\1')) addr1
     , TRIM(REGEXP_REPLACE(addr, pattern, '\2')) addr2
     , TRIM(REGEXP_REPLACE(addr, pattern, '\3')) addr3
     , TRIM(REGEXP_REPLACE(addr, pattern, '\4')) addr4
     , TRIM(REGEXP_REPLACE(addr, pattern, '\5')) addr5
     , TRIM(REGEXP_REPLACE(addr, pattern, '\6')) addr6
     , TRIM(REGEXP_REPLACE(addr, pattern, '\7')) addr7
  FROM t, p
;

 


by 오라클왕따 [2014.05.30 09:49:11]

감사합니다~ 마농님^^ 항상 많은 도움을 받고 있네요~^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입