REPLACE (Transact-SQL)
Gilt für: SQL Server
Azure SQL-Datenbank
Azure SQL verwaltete Instanz
Azure Synapse Analytics
Platform System (PDW)
SQL Analytics Platform-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric Warehouse
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)