REPLACE(Transact-SQL)

지정된 문자열 값의 모든 항목을 다른 문자열 값으로 바꿉니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

REPLACE ( string_expression , string_pattern , string_replacement )

인수

  • string_expression
    검색할 문자열 입니다. string_expression은 문자 또는 이진 데이터 형식일 수 있습니다.

  • string_pattern
    찾을 하위 문자열입니다. string_pattern은 문자 또는 이진 데이터 형식일 수 있습니다. string_pattern은 빈 문자열('')일 수 없습니다.

  • string_replacement
    대체 문자열입니다. string_replacement은 문자 또는 이진 데이터 형식일 수 있습니다.

반환 형식

입력 인수 중 하나가 nvarchar 데이터 형식이면 nvarchar를 반환하고 그렇지 않으면 REPLACE는 varchar를 반환합니다.

인수 중에 Null이 있으면 NULL을 반환합니다.

string_expression이 varchar(max) 또는 nvarchar(max) 형식이 아닌 경우 REPLACE는 반환 값을 8,000바이트에서 자릅니다. 8,000바이트를 초과하는 값을 반환하려면 string_expression을 적절한 큰 값 유형의 데이터로 명시적으로 캐스팅해야 합니다.

주의

REPLACE는 입력의 데이터 정렬을 기반으로 비교를 수행합니다. 지정된 데이터 정렬에서 비교를 수행하려면 COLLATE를 사용하여 입력에 명시적 데이터 정렬을 적용할 수 있습니다.

0x0000(char(0))은 Windows 데이터 정렬에서 정의되지 않은 문자이고 REPLACE에 포함될 수 없습니다.

다음 예에서는 abcdefghi의 cde 문자열을 xxx로 대체합니다.

SELECT REPLACE('abcdefghicde','cde','xxx');
GO

결과 집합은 다음과 같습니다.

------------
abxxxfghixxx
(1 row(s) affected)

다음 예에서는 COLLATE 함수를 사용합니다.

SELECT    REPLACE('Das ist ein Test'  COLLATE Latin1_General_BIN,
'Test', 'desk' );
GO

결과 집합은 다음과 같습니다.

------------
Das ist ein desk
(1 row(s) affected)