REPLACE (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

Ersetzt alle Vorkommen eines angegebenen Zeichenfolgenwerts durch einen anderen Zeichenfolgenwert.

Transact-SQL-Syntaxkonventionen

Syntax

REPLACE ( string_expression , string_pattern , string_replacement )  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

string_expression
Der Zeichenfolgenausdruck, der gesucht werden soll. string_expression kann von einem Zeichen- oder Binärdatentyp sein.

string_pattern
Die zu suchende Teilzeichenfolge. string_pattern kann von einem Zeichen- oder Binärdatentyp sein. string_pattern darf die maximale Anzahl von Bytes, die auf eine Seite passen, nicht überschreiten. Wenn string_pattern eine leere Zeichenfolge („") ist, wird string_expression unverändert zurückgegeben.

string_replacement
Die Ersetzungszeichenfolge. string_replacement kann von einem Zeichen- oder Binärdatentyp sein.

Rückgabetypen

Gibt nvarchar zurück, wenn eines der Eingabeargumente vom Datentyp nvarchar ist. Andernfalls wird von REPLACE varchar zurückgegeben.

Gibt NULL zurück, wenn eines der Argumente NULL ist.

Wenn string_expression nicht vom Typ varchar(max) oder nvarchar(max) ist, schneidet REPLACE den Rückgabewert bei 8.000 Byte ab. Für die Rückgabe von Werten über 8.000 Byte muss string_expression explizit in einen Datentyp für umfangreichere Werten umgewandelt werden.

Bemerkungen

REPLACE führt Vergleiche auf der Basis der Sortierung der Eingabe durch. Zum Ausführen eines Vergleichs in einer angegebenen Sortierung können Sie mithilfe von COLLATE eine ausdrückliche Sortierung auf die Eingabe anwenden.

0x0000 (char(0) ) ist ein nicht definiertes Zeichen in Windows-Sortierungen und kann nicht in REPLACE enthalten sein.

Beispiele

Das folgende Beispiel ersetzt die Zeichenfolge cde in abcdefghicde durch xxx.

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

Hier ist das Resultset.

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

Das folgende Beispiel verwendet die COLLATE-Funktion.

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

Hier ist das Resultset.

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

Im folgenden Beispiel wird die Anzahl der Leerzeichen in einem Satz mit der Funktion REPLACE berechnet. Zunächst wird die Länge des Satzes mit der Funktion LEN berechnet. Anschließend werden mit REPLACE die Zeichen ' ' durch '' ersetzt. Nach diesem Vorgang wird die Länge des Satzes erneut berechnet. Die daraus resultierende Differenz ist die Anzahl der Leerzeichen im Satz.

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 ist das Resultset.

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

(1 row(s) affected)  

Weitere Informationen

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)
Datentypen (Transact-SQL)
Zeichenfolgenfunktionen (Transact-SQL)