다음을 통해 공유


REPLACE(Transact-SQL)

적용 대상: Microsoft Fabric의 Microsoft Fabric Warehouse에 있는 SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System(PDW) SQL 분석 엔드포인트

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

Transact-SQL 구문 표기 규칙

Syntax

REPLACE ( string_expression , string_pattern , string_replacement )  

참고 항목

SQL Server 2014(12.x) 이전 버전의 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)