반응형
안녕하세요. 오늘은 기호로 구분하여 전화번호를 저장하고 추출하여 보겠습니다.
자릿수에 상관없이 저장, 추출 가능합니다. (핸드폰번호, 집 전화번호 모두 가능)
전화번호를 세부분으로 나누어 받아 한 컬럼에 추가하고, 다시 화면에 나타낼 때는 세부분으로 나누어 출력이 가능합니다.
먼저 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(문자열, '-', 1, 2) -- STR의 1번째 문자부터 2번째 '-' 기호가 있는 문자 위치 찾기
|
cs |
그럼 기호를 기준으로 나누어 출력해보겠습니다.
1
2
3
4
5
|
SELECT SUBSTR(TEL_NO, 1, INSTR(TEL_NO, '-', 1, 1) - 1) AS TEL_NO1
,SUBSTR(TEL_NO, INSTR(TEL_NO, '-', 1, 1) + 1, INSTR(TEL_NO, '-', 1, 2)
- INSTR(TEL_NO, '-', 1, 1) - 1) AS TEL_NO2
,SUBSTR(TEL_NO, INSTR(TEL_NO, '-', 1, 2) + 1) AS TEL_NO3
FROM TABLE1
|
cs |
INSTR을 통해 기호를 기준으로 자를 문자열의 위치를 파악한 후 SUBSTR으로 잘라줍니다.
이 방식을 통해 - 기호로 구분하여 화면에 나타낼 수 있고 저장 할 때는 DB에 기호 붙여서 저장 가능합니다.
다른예로, 집전화번호 형태의 데이터도 추출해보겠습니다.
반응형
'코딩 기록 > ORACLE' 카테고리의 다른 글
[ORACLE] 컬럼추가/코멘트추가/컬럼순서변경 (0) | 2023.04.21 |
---|---|
[ORACLE] TOAD - 엑셀파일을 데이터로 변환하기 (0) | 2023.01.03 |
[ORACLE] CONNECT BY를 이용하여 임의의 데이터 생성하기 (0) | 2022.05.09 |
[SQL/ORACLE] - 두번째 최대값 출력하기 (0) | 2021.12.31 |