본문 바로가기
개발/SQL

[MSSQL] 문자열 치환 (REPLACE, STUFF)

by 김토끼A 2021. 8. 28.

 문자열에 특정 문자를 다른 문자로 치환해야할 때가 있습니다. 그때 상황에 따라 REPLACE와 STUFF를 사용해 치환할 수 있습니다.

 

REPLACE(문자열, 치환될 문자열, 치환할 문자열)

: 특정 문자열을 다른 문자열로 치환할 수 있음.

아래 첫번째 예시를 보면 'ABCDEFG'라는 문자열이 있는데 여기서 'CD'를 '*'로 치환되어 'AB*EFG'로 표현되는 걸 확인할 수 있습니다. 두번째 예시를 보면 'I AM A CAT'라는 문자열이 있는데 공백을 지우고 표현하고 싶어 ' '를 ''로 치환하여 'IAMACAT'으로 표현되는 걸 확인할 수 있습니다.

 

SELECT REPLACE('ABCDEFG', 'CD', '*') // AB*EFG
SELECT REPLACE('I AM A CAT', ' ', '') // IAMACAT

 

 

STUFF(문자열, 시작위치, 길이, 치환할 문자열)

: 시작위치부터 원하는 길이까지를 다른 문자열로 치환할 수 있음.

휴대폰번호 중간 자리를 *로 치환하고 데이터를 표현하고자 합니다. 아래 예시를 참고하면 '010-1234-5678'이라는 문자열에 5번째부터 8번째까지 '*'로 치환하기 아래와 같이 쿼리를 작성하면 됩니다. 쿼리를 실행하면 '010-****-5678'로 결과가 나오는걸 확인할 수 있습니다.

 

SELECT STUFF('010-1234-5678', 5, 4, '****') // 010-****-5678

 

댓글