Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-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)