본문 바로가기
데이터베이스[DB]/MSSQL

[MSSQL] REPLACE - 문자열 치환 함수

by 낭만의개꿈 2024. 6. 24.

 

MS-SQL 에서 문자열 관련 함수 중 REPLACE와 REPLICATE 함수에 대해서 확인하도록 하자.

 

우선, REPLACE 는 문자열 치환 함수라고 부르며, 특정 문자열을 지정한 문자열로 변경한 결과를 반영한다.

 

REPLACE
  • 문자열 치환 함수
DECLARE @txt_comm nvarchar(100)

SET @txt_comm = N'오늘 하루도 행복하게 화이팅!'

SELECT REPLACE(@txt_comm, N'화이팅', N'활기차게')

[화이팅]이 [활기차게]로 치환 표시

 


◈ TIP 

@txt_comm 을 nvarchar(100) 으로 유니코드 문자로 선언하며 유니코드 문자임을 알리기 위해 텍스트 앞에 N을 붙여서 처리했다.

 

유니코드 :  영문자, 숫자, 특수문자 뿐만 아니라 다양한 언어들을 표현할 수 있음. 영문자를 제외한 한국어 한자 등 16bit 가 필요한 언어들을 위해 유니코드가 탄생!

 

 

  • 특수 문자 치환
DECLARE @txt_comm nvarchar(100), @txt_date nvarchar(10)

SET @txt_comm = N'오늘 하루도 행복하게 화이팅!'
SET @txt_date = '2024/07/01'

SELECT REPLACE(@txt_comm, N'!', N'')
SELECT REPLACE(@txt_date, '/', '-')

[!] 와 [/] 가 각각 치환

 

특수문자도 REPLACE 를 이용하여 해당 문자를 작성하여 치환이 가능하다. 

 

REPLACE COLLATE Korean_Wansung_CS_AS
  • 대소문자를 구분하여 치환
DECLARE @txt_comm nvarchar(100), @txt_date nvarchar(10)

SET @txt_comm = 'Microsoft SQL Server'

SELECT REPLACE(@txt_comm, 'sql', 'test')
SELECT REPLACE(@txt_comm COLLATE Korean_Wansung_CS_AS, 'sql', 'test')

대소문자 구분하여 치환

 

REPLACE 는 기본적으로 대소문자를 구분하지 않는다. 하지만 [ COLLATE Korean_Wansung_CS_AS ] 를 사용하면 대소문자가 정확하게 일치해야만 치환이 가능하다.