'도로명주소'를 정규식으로 나누는 방법 문의드립니다. 2 4 9,421

by 까망소 [SQL Query] REGEXP_SUBSTR 정규식 [2015.08.18 11:39:38]


안녕하세요~ 모두모두 행복하세요.

그리고 제게 행복의 빛 줄기를 한 줌 부탁드립니다~ ㅠ_ㅠ

8월 1일부터 시행된 우편번호 5자리 변환 관련하여,

지번주소를 변환하여  '새 우편번호', '도로명주소', '건물관리번호' 로 변환하였는데요.

도로명주소에 상세주소와 부가정보가 한 컬럼으로 되어 있어서, 이를 나누려다보니 애로사항이 있어 문의드립니다.

with t1 as (
select 1 as no_, '25757' as zip_code, '강원도 동해시 천곡로 15, 24동 606호(천곡동, 한양2차아파트)' as addr_doro from dual union all
select 2 as no_, '24537' as zip_code, '강원도 양구군 양구읍 양구새싹로 5-15'                                    from dual union all
select 3 as no_, '26441' as zip_code, '강원도 원주시 치악로 1803, 치악멘숀아파트 804호 (명륜동)'                from dual union all
select 4 as no_, '24013' as zip_code, '강원도 철원군 동송읍 이평로85번길 11, 13통 2반'                          from dual )
select no_ as "행번호"
      ,zip_code as "우편번호"
      ,addr_doro as "도로명주소_전체"
      ,REGEXP_SUBSTR(addr_doro,'[^,]+', 1, 1) as "도로명주소"
      ,ltrim(REGEXP_SUBSTR(addr_doro,'[^,]+', 1, 2)) as "상세주소"
      ,ltrim(REGEXP_SUBSTR(addr_doro,'[^ ]+[^(]+', 1, 2)) as "부가정보"
  from t1;
  

위와 같이 정규식을 이용하여 분리하였는데, 제가 부족하여 '상세주소'에서

'부가정보'에 해당하는  괄호'(' 에서 괄호')'를 제거하는 방법을 모르겠습니다.

도움 부탁드립니다. ^^:

오라클 버전은 10.2 입니다.

 

-------------------------------------------------------------------------------

예를 들어 1행의  결과가 아래와 같이 나뉘었으면 합니다.

도로명주소 = 강원도 동해시 천곡로 15

상세주소 = 24동 606호

부가정보 = (천곡동, 한양2차아파트)

by 아발란체 [2015.08.18 12:15:37]
REGEXP_REPLACE(TRIM(addr_doro), '^[^\(]+.|\)$', '') as "부가정보"

 


by 까망소 [2015.08.18 12:51:46]

아발란체님 감사합니다. REGEXP_REPLACE 이용하여 이렇게도 가능하군요. ^^*

 


by 마농 [2015.08.18 12:37:21]

상세주소(컴마) 없이 바로 부가정보(괄호)가 나오는 주소도 있을 듯 합니다.
예) '강원도 양구군 양구읍 양구새싹로 5-15(땡땡땡)'
이런 주소도 염두에 두고 작성하셔야 할 듯.

SELECT no_       AS "행번호"
     , zip_code  AS "우편번호"
     , addr_doro AS "도로명주소_전체"
     , REGEXP_SUBSTR(addr_doro, '[^,(]+') AS "도로명주소"
     , REGEXP_SUBSTR(REGEXP_SUBSTR(addr_doro, '[^,]+', 1, 2), '[^(]+') AS "상세주소"
     , REGEXP_SUBSTR(addr_doro, '[(][^)]+[)]') AS "부가정보"
  FROM t1
;

 


by 까망소 [2015.08.18 12:52:45]

마농님 감사합니다.

정말 큰 도움이 되었습니다. *^ㅡ^)/

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