STUFF (Transact-SQL)

Si applica a:yes SQL Server (tutte le versioni supportate) database SQL di Azure Istanza gestita di SQL di Azure YesyesAzure Synapse Analytics Analytics yesPlatform System (PDW) Yes

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.

Topic link iconConvenzioni di sintassi Transact-SQL

Sintassi

STUFF ( character_expression , start , length , replaceWith_expression )  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 e versioni precedenti, vedere Documentazione delle versioni precedenti.

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 è negativo o zero, viene restituita una stringa Null. Se start è più lungo del primo argomento 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 l'argomento length è negativo, viene restituita una stringa Null. Se length è più lungo della prima istanza di character_expression, l'eliminazione viene eseguita fino all'ultimo carattere dell'ultima istanza di character_expression. Se length è zero, l'inserimento viene eseguito in corrispondenza della posizione start e non vengono eliminati caratteri. 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 sostituisce un numero di caratteri pari a length in character_expression a partire da start. Se si specifica NULL come replaceWith_expression i caratteri vengono rimossi senza inserire nulla.

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 usano regole di confronto SC, sia character_expression sia replaceWith_expression possono includere coppie di surrogati. Il parametro della lunghezza considererà ogni 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  

Questo è il set di risultati.

---------   
aijklmnef   
  
(1 row(s) affected)  

Vedere anche

CONCAT (Transact-SQL)
CONCAT_WS (Transact-SQL)
FORMATMESSAGE (Transact-SQL)
QUOTENAME (Transact-SQL)
REPLACE (Transact-SQL)
REVERSE (Transact-SQL)
STRING_AGG (Transact-SQL)
STRING_ESCAPE (Transact-SQL)
TRANSLATE (Transact-SQL)
Tipi di dati (Transact-SQL)
Funzioni per i valori stringa (Transact-SQL)