STUFF (Transact-SQL)
La funzione STUFF consente di inserire una stringa in un'altra stringa eliminando un numero di caratteri specificato nella posizione iniziale della prima stringa e inserendo la seconda stringa in tale posizione.
Sintassi
STUFF ( character_expression , start , length ,character_expression )
Argomenti
character_expression
Espressione di dati di tipo carattere. L'argomento character_expression può essere una costante, una variabile o una colonna di dati di tipo carattere o binario.start
Valore integer che indica la posizione da cui iniziare le operazioni di eliminazione e inserimento. Se l'argomento start o length è negativo, viene restituita una stringa Null. Se il valore di start è più lungo della prima espressione character_expression, viene restituita una stringa Null. start può essere di tipo bigint.length
Valore integer che indica il numero di caratteri da eliminare. Se il valore di length è più lungo della prima espressione character_expression, l'eliminazione viene eseguita fino all'ultimo carattere dell'ultima espressione character_expression. length può essere di tipo bigint.
Tipi restituiti
Restituisce dati di tipo carattere se character_expression è un tipo di dati carattere supportato. Restituisce dati binari se character_expression è un tipo di dati binary supportato.
Osservazioni
Se la posizione iniziale o la lunghezza è negativa oppure la posizione iniziale è maggiore della lunghezza della prima stringa, viene restituita una stringa Null. Se il numero di caratteri da eliminare è maggiore del numero di caratteri che compongono la prima stringa, l'eliminazione arriva fino al primo carattere della prima stringa.
Viene generato un errore se il valore risultante è maggiore del massimo supportato dal tipo restituito.
Esempi
Nell'esempio seguente viene restituita una stringa di caratteri ottenuta eliminando tre caratteri dalla prima stringa,abcdef, a partire dalla posizione 2, in corrispondenza di b, e inserendo la seconda stringa nel punto in cui è stata eseguita l'eliminazione.
SELECT STUFF('abcdef', 2, 3, 'ijklmn');
GO
Set di risultati:
---------
aijklmnef
(1 row(s) affected)