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.
Convenzioni della sintassi Transact-SQL
Sintassi
STUFF ( character_expression , start , length , replaceWith_expression )
Argomenti
character_expression
Espressione di dati di tipo carattere. character_expression può essere una costante, una variabile o una colonna di dati di tipo carattere o binario.start
Valore intero 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 intero 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.replaceWith_expression
Espressione di dati di tipo carattere. character_expression può essere una costante, una variabile o una colonna di dati di tipo carattere o binario. Questa espressione sostituirà i caratteri length di character_expression a partire da start.
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 la posizione iniziale è 0, viene restituito un valore 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.
Caratteri supplementari (coppie di surrogati)
Quando si utilizzano le regole di confronto SC, sia character_expression che replaceWith_expression possono includere coppie di surrogati. Il parametro della lunghezza considererà ciascun surrogato in character_expression come carattere singolo.
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)