Delen via


VERVANG (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Vervangt alle voorkomen van een gespecificeerde stringwaarde door een andere stringwaarde.

Transact-SQL syntaxis-conventies

Syntaxis

REPLACE ( string_expression , string_pattern , string_replacement )  

Arguments

string_expression
Is de stringexpressie die gezocht moet worden. string_expression kan van een karakter- of binair datatype zijn.

string_pattern
Is de substring die gevonden moet worden. string_pattern kan van een karakter- of binair datatype zijn. string_pattern mag het maximale aantal bytes dat op een pagina past niet overschrijden. Als string_pattern een lege string is (''), wordt string_expression ongewijzigd teruggegeven.

string_replacement
Is de vervangende snaar. string_replacement kan van een karakter- of binair datatype zijn.

Retourtypen

Geeft nvarchar terug als een van de invoerargumenten van het nvarchar-datatype is; anders geeft VERVANG varchar terug.

Geeft NULL terug als een van de argumenten NULL is.

Als string_expression niet van het type varchar(max) of nvarchar(max) is, kortst REPLACE de returnwaarde af op 8.000 bytes. Om waarden groter dan 8.000 bytes terug te geven, moet string_expression expliciet worden gecast naar een datatype met grote waardes.

Opmerkingen

REPLACE voert vergelijkingen uit op basis van de collatie van de invoer. Om een vergelijking uit te voeren in een gespecificeerde collatie, kun je COLLATE gebruiken om een expliciete collatie toe te passen op de invoer.

0x0000 (char(0)) is een ongedefinieerd teken in Windows-collaties en kan niet worden opgenomen in REPLACE.

Voorbeelden

Het volgende voorbeeld vervangt de string cde in abcdefghicde door xxx.

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

Hier is het resultatenoverzicht.

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

Het volgende voorbeeld gebruikt de COLLATE functie.

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

Hier is het resultatenoverzicht.

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

Het volgende voorbeeld berekent het aantal ruimtes in een zin met behulp van de REPLACE functie. Eerst berekent het de lengte van de zin met de LEN functie. Vervolgens worden de ' ' karakters vervangen door '' door REPLACE. Na dit proces berekent het opnieuw de lengte van de zin. Het resulterende verschil is het aantal spatietekens in de zin.

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  

Hier is het resultatenoverzicht.

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

(1 row(s) affected)  

Zie ook

TEKST.SAMENV (Transact-SQL)
CONCAT_WS (Transact-SQL)
FORMATMESSAGE (Transact-SQL)
CITAATNAAM (Transact-SQL)
ACHTERUIT (Transact-SQL)
STRING_AGG (Transact-SQL)
STRING_ESCAPE (Transact-SQL)
SPULLEN (Transact-SQL)
TRANSLATE (Transact-SQL)
gegevenstypen (Transact-SQL)
tekenreeksfuncties (Transact-SQL)