안녕하세요! 초보개발자 시아아빠입니다!!
이번은 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( ) 의 사용법을 쉽게 이해시켜드리려 했는데 잘 이해되셨나요?? ㅎㅎ
앞으로도 도움되는 글 많이 올리도록 노력하겠습니다!!
댓글