본문 바로가기
개발

[MSSQL] 문자열 교체하기 REPLACE

by 테크냥이 2020. 5. 6.
반응형

REPLACE은 MSSQL에서 특정 칼럼의 문자열을 치환, 교체해야 할 때가 있습니다. 예를 들면 아이디 비밀번호 찾기 등을 할 때 전체 아이디를 연동 이메일을 보여주는 것이 아니라 abcd****@naver.com  이런 식으로 중간 문자를 치환해서 보여줘야 할 때(적당한 예가 안떠오르네요)지정된 문자열 값의 모든 항목을 다른 문자열 값으로 바꿉니다.

 

구문은 

REPLACE ( string_expression , string_pattern , string_replacement )

입니다.

 

string_expression : 검색할 문자열(칼럼 또는 문자열)

string_pattern : 찾는 문자열 입니다. 공백은 넣을 수 없습니다.

string_replacement : 대체 문자열 입니다.

 

반환되는 문자열 형식은 데이터 형식이 nvarchar이면 nvarchar를 반환하고 나머지는 varchar를 반환합니다. 인수중 null이 있으면 NULL을 반환합니다.

 

SELECT REPLACE('ABC_DEF_GHI_DEF@naver.com', 'DEF', '***');
GO

 

결과는 다음과 같습니다.

 

---------------------
ABC_***_GHI_***@naver.com
(1  row(s) affected)

 

테이블에 적용할 때는 이런 형식으로 사용합니다.

SELECT
           REPLACE( COL_EMAIL, 'ABC', '***'
)
FROM
           USER_INFO

 

사실 위와 같은 용도로 사용할 때는 STUFF를 사용하여 치환하는 게 맞는 것 같습니다.

 

문자열 치환하는 다른 함수 STUFF 확인하려면 아래 링크도 확인해 보세요

https://brandnew-days.tistory.com/entry/MSSQL-STUFF-사용법

 

감사합니다.

반응형

댓글