전화번호 분리 1 2 3,003

by 김영훈 [2009.06.13 15:19:12]


데이터 이전을 하는데요 기존 전화번호가 022546699 이런식으로 붙어져있는데

02-254-6699 이런식으로 나누고싶거든요

쉽게 생각해서 할려고하니깐 변수가 너무 만가서 절망에 빠졌습니다.

지역번호가 앞에 2자리인것도 있고 3자리 인것도 있어서 자르기도 애매하고 가운데 앞자리를 그렇저럭 잘랏다고 쳐도 가운데 숫자가 3자리인것도 있고 4자리인것도 있잖아요..

아 ~~너무 힘드네요.. 조언좀 주세요 고수님들

by 마농 [2009.06.13 22:31:15]
WITH tel AS
(
SELECT '021234567' tel FROM dual
UNION ALL SELECT '0212345678' FROM dual
UNION ALL SELECT '0321234567' FROM dual
UNION ALL SELECT '03212345678' FROM dual
)
SELECT tel
, SUBSTR(tel, 1, p1) loc
, SUBSTR(tel, p1 + 1, p2 - p1) gul
, SUBSTR(tel, p2 + 1) num
FROM
(
SELECT tel
, CASE WHEN tel LIKE '02%' THEN 2 ELSE 3 END p1
, LENGTH(tel) - 4 p2
FROM tel
)
;

by youngkim5 [2009.06.17 13:18:16]
와우 대단하시네요...
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입