-
MSSQL REPLACE, TRANSLATE 문자 바꾸기IT/SQL 2024. 4. 25. 23:56
MSSQL 에서 문자 바꾸기는 기본적으로 REPLACE 가 있다. 만약 REPLACE 를 중첩해서 여러번 사용해야 한다면 TRANSLATE 를 사용하면 된다. ( 2017 버전부터 )
REPLACE 사용법
구문
REPLACE ( string_expression , string_pattern , string_replacement )
예제
SELECT REPLACE('ABC', 'B', 'X')
결과
REPLACE 쿼리 결과 만약 REPLACE 를 중첩해서 사용해야 한다면( 바꿀 문자가 여러 개 일 경우 ) TRANSLATE 를 사용하면 훨씬 편하다
TRANSLATE 는 MSSQL 2017 버전부터 사용 가능하다.
TRANSLATE 사용법
구문
TRANSLATE ( inputString, characters, translations )
예제
만약 '[ABC],[DEF]' 와 같은 문자열이 있는데 중괄호를 괄호로 바꾸고 싶다면 REPLACE 를 사용하면 중첩으로 사용해야 한다.
DECLARE @A VARCHAR(20) SET @A = '[ABC],[DEF]' SELECT @A AS 원본 , REPLACE(REPLACE(@A, '[', '('), ']', ')') AS [REPLACE 함수] , TRANSLATE(@A, '[]', '()') AS [TRANSLATE 함수]
결과
각각의 함수 실행 결과 REPLACE 를 중첩으로 사용한 결과와 TRANSLATE 를 사용한 결과는 동일하다.
다만 제약은 있다. 두번째 파라미터의 문자 갯수와 세번째 파라미터의 문자 갯수가 같아야 한다.
그래서 만약 [ ] 이 두 문자를 모두 / 로 바꾸고 싶다면
DECLARE @A VARCHAR(20) SET @A = '[ABC],[DEF]' SELECT TRANSLATE(@A, '[]', '//') AS [TRANSLATE 함수]
이런식으로 작성해줘야 한다.
문자를 대체하는 것이 아니라 제거하고 싶다면 TRIM 을 사용하면 된다. ( 2022 버전부터 사용 가능 )
2024.04.21 - [IT/SQL] - MSSQL TRIM 공백제거
'IT > SQL' 카테고리의 다른 글
MSSQL STRING_AGG (0) 2024.05.05 MSSQL DELETE 및 DELETE JOIN (0) 2024.04.22 MSSQL TRIM 공백제거 (0) 2024.04.21 SSMS 쿼리 후에 한글로 자동변환 될 때 (0) 2024.04.17 MSSQL 문자열 붙이기 CONCAT (0) 2024.04.17