적용 대상:SQL 서버
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Microsoft Fabric
의 SQL 분석 엔드포인트Microsoft Fabric
의 웨어하우스Microsoft Fabric의 SQL 데이터베이스
지정된 문자열 값의 모든 항목을 다른 문자열 값으로 바꿉니다.
구문
REPLACE ( string_expression , string_pattern , string_replacement )
인수
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에 포함할 수 없습니다.
예
다음 예에서는 cde의 abcdefghicde 문자열을 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)