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.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

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)