STUFF (Transact-SQL)

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.

Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version), Windows Azure SQL-Datenbank (Ursprüngliche Version bis aktuelle Version).

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

STUFF ( character_expression , start , length , replaceWith_expression )

Argumente

  • character_expression
    Ein Ausdruck mit Zeichendaten. character_expression kann eine Konstante, Variable oder Spalte mit Zeichen- oder Binärdaten sein.

  • 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 oder length negativ ist, wird eine NULL-Zeichenfolge zurückgegeben. Wenn start länger ist als der erste Zeichenausdruck (character_expression), wird eine NULL-Zeichenfolge zurückgegeben. start kann vom Datentyp bigint sein.

  • length
    Eine ganze Zahl, die festlegt, wie viele Zeichen gelöscht werden sollen. Falls length länger ist als der erste Zeichenausdruck (character_expression), wird bis zum letzten Zeichen im letzten Zeichenausdruck (character_expression) gelöscht. length kann vom Datentyp bigint sein.

  • replaceWith_expression
    Ein Ausdruck mit Zeichendaten. character_expression kann eine Konstante, Variable oder Spalte mit Zeichen- oder Binärdaten sein. Mit diesem Ausdruck werden length-Zeichen von character_expression ab start ersetzt.

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)

Bei SC-Sortierungen können character_expression und replaceWith_expression auch Ersatzpaare 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

Dies ist das Resultset.

--------- 
aijklmnef 

(1 row(s) affected)

Siehe auch

Verweis

Datentypen (Transact-SQL)

Zeichenfolgenfunktionen (Transact-SQL)