pbj0812의 코딩 일기

[SQL] 전화번호 전처리 하기 본문

ComputerLanguage_Program/SQL

[SQL] 전화번호 전처리 하기

pbj0812 2020. 11. 7. 22:27

0. 목표

 - 불규칙하게 저장된 전화번호 전처리 하기

1. 실습

 1) 테이블 생성

CREATE TABLE Number_test 
(
	Id INT,
    PhoneNumber VARCHAR(30)
);

 2) 데이터 삽입

INSERT INTO Number_test(Id, PhoneNumber) VALUES(1, '012-123-1234');
INSERT INTO Number_test(Id, PhoneNumber) VALUES(2, '012-1234-1234');
INSERT INTO Number_test(Id, PhoneNumber) VALUES(3, '0121231234');
INSERT INTO Number_test(Id, PhoneNumber) VALUES(4, '01212341234');

 3) 확인

SELECT * FROM Number_test;

 - 결과

 4) REPLACE 처리 확인

SELECT Id, REPLACE(PhoneNumber, '-', '') AS PhoneNumber
FROM Number_test;

 - 결과

 5) 길이에 따른 전처리

SELECT
	A.Id,
    CASE LENGTH(A.PhoneNumber)
		WHEN 11 THEN CONCAT(LEFT(A.PhoneNumber, 3), '-', MID(A.PhoneNumber, 4, 4), '-', RIGHT(A.PhoneNumber, 4))
        WHEN 10 THEN CONCAT(LEFT(A.PhoneNumber, 3), '-', MID(A.PhoneNumber, 4, 3), '-', RIGHT(A.PhoneNumber, 4))
	END AS PhoneNumber
    
FROM (
	SELECT Id, REPLACE(PhoneNumber, '-', '') AS PhoneNumber
	FROM Number_test
) AS A;

 - 결과

2. 참고

 - [MySQL] 문자열 길이 가져오기 (LENGTH, CHAR_LENGTH 함수)

 - [MySQL] 문자열 부분 가져오기 (LEFT, MID, RIGHT 함수)

 - Mysql 문자열 합치기

Comments