STUFF (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
Die STUFF-Funktion fügt eine Zeichenfolge in eine andere Zeichenfolge ein. Sie löscht ab einer bestimmten Anfangsposition eine festgelegte Anzahl von Zeichen in der ersten Zeichenfolge und fügt dort die zweite Zeichenfolge ein.
Transact-SQL-Syntaxkonventionen
Syntax
STUFF ( character_expression , start , length , replace_with_expression )
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
character_expression
Ein Ausdruck von Zeichendaten. character_expression kann eine Konstante, Variable oder Spalte mit Zeichen- oder Binärdaten darstellen.
start
Ein ganzzahliger Wert, der die Position angibt, ab der Zeichen gelöscht werden sollen und an der anschließend eine andere Zeichenfolge eingefügt werden soll. Falls start negativ oder 0 (null) ist, wird eine NULL-Zeichenfolge zurückgegeben. Wenn start länger als das erste character_expression-Element ist, wird eine NULL-Zeichenfolge zurückgegeben. start kann vom Typ bigint sein.
length
Eine ganze Zahl, die festlegt, wie viele Zeichen gelöscht werden sollen. Falls length negativ ist, wird eine NULL-Zeichenfolge zurückgegeben. Wenn length länger als das erste character_expression-Element ist, wird bis zum letzten Zeichen im letzten character_expression-Element alles gelöscht. Wenn length null (0) ist, erfolgt die Einfügung an der Position start, und es werden keine Zeichen gelöscht. length kann vom Datentyp bigint sein.
replace_with_expression
Ein Ausdruck von Zeichendaten. replace_with_expression kann eine Konstante, Variable oder Spalte mit Zeichen- oder Binärdaten darstellen. Dieser Ausdruck ersetzt ab startlength-Zeichen durch character_expression. Wenn NULL
als replace_with_expression angegeben ist, werden die Zeichen entfernt, ohne zusätzliche Zeichen einzufügen.
Rückgabetypen
Gibt Zeichendaten zurück, wenn character_expression einer der unterstützten Zeichendatentypen ist. Gibt Binärdaten zurück, wenn character_expression einer der unterstützten Binärdatentypen ist.
Hinweise
Falls die Startposition oder die Länge negativ oder die Startposition größer als die Länge der ersten Zeichenfolge ist, wird eine Nullzeichenfolge zurückgegeben. Wenn die Startposition 0 ist, wird ein NULL-Wert zurückgegeben. Wenn es sich um mehr zu löschende Zeichen handelt als die erste Zeichenfolge aufweist, wird die erste Zeichenfolge bis auf das erste Zeichen gelöscht.
Wenn der Ergebniswert größer als der vom Rückgabetyp unterstützte Höchstwert ist, wird ein Fehler ausgegeben.
Ergänzende Zeichen (Ersatzpaare)
Wenn SC-Sortierungen (Sortierung ergänzender Zeichen) verwendet werden, kann sowohl character_expression als auch replace_with_expression Ersatzzeichenpaare enthalten. Der Längenparameter betrachtet jedes Ersatzzeichen in character_expression als einzelnes Zeichen.
Beispiele
In diesem Beispiel wird eine neue Zeichenfolge zurückgegeben, indem zunächst drei Zeichen aus der ersten Zeichenfolge (abcdef
) ab der Position 2
, (also bei b
) gelöscht werden. Anschließend wird die zweite Zeichenfolge an der Löschposition eingefügt.
SELECT STUFF('abcdef', 2, 3, 'ijklmn');
GO
Hier ist das Resultset.
---------
aijklmnef
(1 row(s) affected)