ERSÄTT (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Microsoft Fabric

Ersätter alla förekomster av ett angivet strängvärde med ett annat strängvärde.

Transact-SQL syntaxkonventioner

Syntax

REPLACE ( string_expression , string_pattern , string_replacement )  

Arguments

string_expression
Är stränguttrycket som ska sökas. string_expression kan vara av en karaktärs- eller binär datatyp.

string_pattern
Är delsträngen som ska hittas. string_pattern kan vara av en karaktärs- eller binär datatyp. string_pattern får inte överstiga det maximala antalet bytes som får plats på en sida. Om string_pattern är en tom sträng (''), returneras string_expression oförändrad.

string_replacement
Är ersättningssträngen. string_replacement kan vara av en karaktärs- eller binär datatyp.

Returtyper

Returnerar nvarchar om ett av indataargumenten är av nvarchar-datatypen ; annars returnerar REPLACE varchar.

Returnerar NULL om något av argumenten är NULL.

Om string_expression inte är av typen varchar(max) eller nvarchar(max), förkortar REPLACE returvärdet vid 8 000 byte. För att returnera värden större än 8 000 byte måste string_expression uttryckligen kastas till en datatyp med stora värden.

Anmärkningar

REPLACE utför jämförelser baserat på sammansättningen av indatan. För att utföra en jämförelse i en specificerad sortering kan du använda COLLATE för att applicera en explicit sortering på indatan.

0x0000 (char(0)) är ett odefinierat tecken i Windows-sorteringar och kan inte inkluderas i REPLACE.

Examples

Följande exempel ersätter strängen cde i abcdefghicde med xxx.

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

Här är resultatet.

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

Följande exempel använder funktionen COLLATE .

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

Här är resultatet.

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

Följande exempel beräknar antalet mellanslag i en mening med hjälp av REPLACE funktionen. Först beräknar den meningens längd med funktionen LEN . Den ersätter sedan ' '-tecknen med '' med REPLACE. Efter denna process räknar den ut meningens längd igen. Den resulterande skillnaden är antalet mellanslagstecken i meningen.

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  

Här är resultatet.

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

(1 row(s) affected)  

Se även

CONCAT (Transact-SQL)
CONCAT_WS (Transact-SQL)
FORMATMESSAGE (Transact-SQL)
CITAT (Transact-SQL)
OMVÄND (Transact-SQL)
STRING_AGG (Transact-SQL)
STRING_ESCAPE (Transact-SQL)
SAKER (Transact-SQL)
ÖVERSÄTTA (Transact-SQL)
Datatyper (Transact-SQL)
Strängfunktioner (Transact-SQL)