REPLACE(Transact-SQL)

적용 대상: SQL Server Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System(PDW)

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

Transact-SQL 구문 규칙

구문

REPLACE ( string_expression , string_pattern , string_replacement )  

참고

SQL Server 2014 이전 버전의 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조하세요.

인수

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

string_pattern
찾을 부분 문자열입니다. string_expression은 문자 또는 이진 데이터 형식일 수 있습니다. string_pattern은 페이지 크기에 맞는 최대 바이트 수를 초과하지 않아야 합니다. string_pattern이 빈 문자열('') 인 경우 string_expression이 변경되지 않고 반환됩니다.

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

반환 형식

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

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

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

설명

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

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

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

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

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

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

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

SELECT REPLACE('This is a Test'  COLLATE Latin1_General_BIN,  
'Test', 'desk' );  
GO  

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

------------  
This is a desk  
(1 row(s) affected)  

다음 예제에서는 REPLACE 함수를 사용하여 문장의 공백 수를 계산합니다. 먼저 LEN 함수를 사용하여 문장의 길이를 계산합니다. 그런 다음, REPLACE를 사용하여 ‘ ’ 문자를 ‘’로 대체합니다. 이 프로세스 후 문장의 길이를 다시 계산합니다. 그에 따른 차이점은 문장의 공백 문자 수입니다.

DECLARE @STR NVARCHAR(100), @LEN1 INT, @LEN2 INT;
SET @STR = N'This is a sentence with spaces in it.';
SET @LEN1 = LEN(@STR);
SET @STR = REPLACE(@STR, N' ', N'');
SET @LEN2 = LEN(@STR);
SELECT N'Number of spaces in the string: ' + CONVERT(NVARCHAR(20), @LEN1 - @LEN2);

GO  

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

------------  
Number of spaces in the sentence: 7  

(1 row(s) affected)  

참고 항목

CONCAT(Transact-SQL)
CONCAT_WS(Transact-SQL)
FORMATMESSAGE(Transact-SQL)
QUOTENAME(Transact-SQL)
REVERSE(Transact-SQL)
STRING_AGG(Transact-SQL)
STRING_ESCAPE(Transact-SQL)
STUFF(Transact-SQL)
TRANSLATE(Transact-SQL)
데이터 형식(Transact-SQL)
문자열 함수(Transact-SQL)