ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 버전부터 사용 가능하다.

     

    REPLACE MS 문서링크

     

    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 공백제거

     

     

    TRANSLATE MS 문서 

    '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

    댓글

Designed by Tistory.