문자열에 특정 문자를 다른 문자로 치환해야할 때가 있습니다. 그때 상황에 따라 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
'개발 > SQL' 카테고리의 다른 글
[Oracle] Null 체크 및 대체 (NVL, NVL2) (0) | 2022.10.26 |
---|---|
[MSSQL] Null 체크 및 대체 (ISNULL) (0) | 2021.08.30 |
[MSSQL] 문자열 자르기 (LEFT, RIGHT, SUBSTRING) (0) | 2021.08.24 |
댓글