반응형

안녕하세요. 오늘은 기호로 구분하여 전화번호를 저장하고 추출하여 보겠습니다.

 

자릿수에 상관없이 저장, 추출 가능합니다. (핸드폰번호, 집 전화번호 모두 가능)

전화번호를 세부분으로 나누어 받아 한 컬럼에 추가하고, 다시 화면에 나타낼 때는 세부분으로 나누어 출력이 가능합니다. 

 

먼저 TABLE1 이라는 테이블에 TEL_NO 라는 컬럼에 데이터를 추가합니다. 

여기서 [010] [1111] [2222] 이 부분은 사용에 맞게 값을 넣어주시면 됩니다.

1
INSERT INTO TABLE1(TEL_NO) VALUES ('010'||'-'||'1111'||'-'||'2222')
cs

데이터가 잘 들어간 것을 확인하였습니다.

 

전화번호가 들어오는 형식은 핸드폰 번호일수도, 집전화일수도, 인터넷전화번호일수도 있기 때문에 중간에 있는 "-" 기호로 구분하여 추출해보겠습니다.

 

 

먼저 SUBSTR, INSTR의 이해가 필요합니다.

1
2
3
SUBSTR(문자열,1,4-- STR의 1번째 글자부터 4개 자르기
 
INSTR(문자열, '-'12-- STR의 1번째 문자부터 2번째 '-' 기호가 있는 문자 위치 찾기
cs

 

그럼 기호를 기준으로 나누어 출력해보겠습니다.

1
2
3
4
5
SELECT SUBSTR(TEL_NO, 1, INSTR(TEL_NO, '-'11- 1) AS TEL_NO1
       ,SUBSTR(TEL_NO, INSTR(TEL_NO, '-'11+ 1, INSTR(TEL_NO, '-'12
               - INSTR(TEL_NO, '-'11- 1) AS TEL_NO2
       ,SUBSTR(TEL_NO, INSTR(TEL_NO, '-'12+ 1) AS TEL_NO3
FROM TABLE1
cs

INSTR을 통해 기호를 기준으로 자를 문자열의 위치를 파악한 후 SUBSTR으로 잘라줍니다.

이 방식을 통해 - 기호로 구분하여 화면에 나타낼 수 있고 저장 할 때는 DB에 기호 붙여서 저장 가능합니다.

 

다른예로, 집전화번호 형태의 데이터도 추출해보겠습니다.

반응형

+ Recent posts