STUFF (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Ponto de extremidade de SQL no Microsoft FabricWarehouse 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 )

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

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

Este é o conjunto de resultados.

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

Confira também