본문 바로가기
DB(Oracle)/Develop

[SQL]ORACLE - SUBSTR( )사용하여 휴대폰 번호(010-XXXX-XXXX)형식으로 조회 또는 불러오기!!

by hyun's life_developer 2019. 7. 4.

안녕하세요! 초보개발자 시아아빠입니다!!

 

이번은 SQL에 대해서 포스팅을 하려고 해요!!

 

아주 간단한 예제를 통해 SUBSTR( )을 파악해보겠습니다 ㅎ

(사실 예제라기보다 제가 예전에 회사(실무)에서 한참 고민한 내용 ㅎ)

 

핸드폰 번호를 적어놓은 데이터가 있다고 합시다!

 

NO 이름 번호
1 닥터스트레인지 01012345678
2 스파이더맨 01098765432
3 아이언맨 01052528282
4 캡틴마블 01079792424

▲테이블명 : table1

 

no와 이름은 이해를 더 쉽게 돕기위해 가시적으로 넣은 데이터라고 칠게요!! 

 

대부분 데이터형태는 이와 비슷할거라고 봅니다. 핸드폰 번호에 해당하는 사용자가 있어야 할테니까요 ㅎ

 

아무튼!! 이 테이블명을 table1로 지칭하겠습니다.

 

SELECT *
  FROM table1 

이 경우 위의 표와 똑같이 아래처럼 나오겠지요?

 

NO 이름 번호
1 닥터스트레인지 01012345678
2 스파이더맨 01098765432
3 아이언맨 01052528282
4 캡틴마블 01079792424

여기서 목적은 번호를 핸드폰 번호 형태로 010-XXXX-XXXX로 바꾸는 것!!

 

우선 바로 알려드릴게요~!

 

SELECT SUBSTR(번호, 1, 3) || '-' || SUBSTR(번호, 4, 4) || '-' || SUBSTR(번호, 8)
  FROM table1

▲이렇게 쿼리를 실행시!!

 

▼이렇게 나와요!!

번호
010-1234-5678
010-9876-5432
010-5252-8282
010-7979-2424

 

SUBSTR(번호, 1, 3)  -- (번호)라는 문자열의 (1)번째 숫자부터 (3)개의 가져온다!! 즉 여기서는 

 

번호
010
010
010
010

이런식의 형태가 되구요!

 

자바에서는 +로 해주지만 sql에서는 ||로 붙여주게 됩니다.

 

SUBSTR(번호, 1, 3) || '-'     // 010-    <- 이렇게 되겠지요?

 

그 후에 

 

|| SUBSTR(번호, 4, 4) || '-'   // ||로 앞에 부분(010-)이랑 붙여주고 (번호)라는 문자열에서 4번째에 해당하는 것부터 4개, 즉, (1234, 9876, 5252, 7979)

 

번호
1234-
9876-
5252-
7979-

 ▲ 즉!! 이 부분은 SUBSTR(번호, 4, 4) || '-'에 해당되어요!!

 

마지막으로! 

 

 || SUBSTR(번호, 8)    //마찬가지로 ||로 앞에 부분과 붙이고 (번호)라는 문자열에 8번째부터!!

마지막 값이 null인 것은 그냥 쭈욱~이라고 보시면 돼요! 즉 8번째부터 쭈욱~!

 

SUBSTR(번호, 8) 

번호
5678
5432
8282
2424

 

 

이제 다 붙이면 SUBSTR(번호, 1, 3) || '-' || SUBSTR(번호, 4, 4) || '-' || SUBSTR(번호, 8) 이렇게 되죠?!

 

               

SUBSTR(번호, 1, 3) || '-' || SUBSTR(번호, 4, 4) || '-' || SUBSTR(번호, 8)를 풀어 첫번째 데이터를 예로 들면!!

ex)        010  더하기 - 더하기    1234     더하기 - 더하기  5678

010    -     1234   -   5678

번호
010-1234-5678
010-9876-5432
010-5252-8282
010-7979-2424

이렇게 됩니당~!! ㅎㅎ

 

경험에서 나온 예제(?)를 통해 SUBSTR( ) 의 사용법을 쉽게 이해시켜드리려 했는데 잘 이해되셨나요?? ㅎㅎ

 

앞으로도 도움되는 글 많이 올리도록 노력하겠습니다!!

 

 

 

댓글