STUFF (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric

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 relative alla sintassi Transact-SQL

Sintassi

STUFF ( character_expression , start , length , replace_with_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 specifica la posizione in cui avviare l'eliminazione e l'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

Intero che specifica 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 la lunghezza è zero, l'inserimento si verifica nella posizione iniziale e non vengono eliminati caratteri. length può essere di tipo bigint.

replace_with_expression

Espressione di dati di tipo carattere. replace_with_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 replace_with_expression, rimuove i caratteri senza inserire alcun elemento.

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 carattere supplementari (SC), sia character_expression che replace_with_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

Il set di risultati è il seguente.

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

Vedi anche