STUFF (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise do SQL Warehouse no Microsoft Fabric

A função STUFF insere uma cadeia de caracteres em outra cadeia de caracteres. Ela exclui um comprimento especificado de caracteres da primeira cadeia na posição inicial e, em seguida, insere a segunda cadeia na primeira, na posição inicial.

Convenções de sintaxe de Transact-SQL

Sintaxe

STUFF ( character_expression , start , length , replace_with_expression )

Argumentos

character_expression

Uma expressão de dados de caractere. character_expression pode ser uma constante, uma variável ou uma coluna de dados binários ou de caracteres.

start

Um valor de inteiro que especifica o local para iniciar a exclusão e a inserção. Se start for negativo ou zero, uma cadeia de caracteres nula será retornada. Se start for maior que a primeira character_expression, uma cadeia de caracteres nula será retornada. start pode ser do tipo bigint.

length

Um inteiro que especifica o número de caracteres a serem excluídos. Se length for negativo, uma cadeia de caracteres nula será retornada. Se length for maior que a primeira character_expression, a exclusão ocorrerá até o último caractere da última character_expression. Se length for zero, a inserção ocorrerá no local start e nenhum caractere será excluído. length pode ser do tipo bigint.

replace_with_expression

Uma expressão de dados de caractere. replace_with_expression pode ser uma constante, uma variável ou uma coluna de dados binários ou de caracteres. Essa expressão substitui os caracteres de length da character_expression começando em start. Fornecer NULL como a replace_with_expression remove os caracteres sem inserir nada.

Tipos de retorno

Retorna dados de caractere se character_expression é um dos tipos de dados de caractere compatíveis. Retorna dados binários se character_expression é um dos tipos de dados binários compatíveis.

Comentários

Se a posição inicial ou o comprimento forem negativos, ou se a posição inicial for maior do que o comprimento da primeira cadeia de caracteres, uma cadeia nula será retornada. Se a posição de início for 0, um valor nulo será retornado. Se o comprimento a ser excluído for maior que a primeira cadeia de caracteres, a exclusão ocorrerá no primeiro caractere da primeira cadeia.

Um erro será gerado se o valor resultante for maior que o máximo suportado pelo tipo de retorno.

Caracteres suplementares (pares alternativos)

Ao usar ordenações SC (caracteres suplementares), character_expression e replace_with_expression podem incluir pares alternativos. O parâmetro de comprimento contará cada par alternativo na character_expression como um único caractere.

Exemplos

O exemplo a seguir retorna uma cadeia de caracteres criada ao excluir três caracteres da primeira cadeia, abcdef, começando na posição 2, em b, e ao inserir a segunda cadeia de caracteres no ponto de exclusão.

SELECT STUFF('abcdef', 2, 3, 'ijklmn');
GO

Veja a seguir o conjunto de resultados.

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

Confira também