Partilhar via


REPLACE (Transact-SQL)

Substitui todas as ocorrências de um valor da cadeia de caracteres especificado por outro valor de cadeia de caracteres.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

REPLACE ( string_expression , string_pattern , string_replacement )

Argumentos

  • string_expression
    É a expressão de cadeia de caracteres a ser pesquisada. string_expression pode ser de um tipo de dados caractere ou binário.

  • string_pattern
    É a subcadeia de caracteres a ser localizada. O string_pattern pode ser de um tipo de dados caractere ou binário. O string_pattern não pode ser uma cadeia de caracteres vazia ('').

  • Substituição de string_
    É a cadeia de caracteres de substituição. string_replacement pode ser de um tipo de dados caractere ou binário.

Tipos de retorno

Retornará nvarchar se um dos argumentos de entrada for do tipo de dados nvarchar; caso contrário, REPLACE retornará varchar.

Retornará NULL se qualquer um dos argumentos for NULL.

Se string_expression não for do tipo varchar(max) ou nvarchar(max),REPLACE truncará o valor de retorno em 8.000 bytes. Para retornar valores com mais de 8.000 bytes, string_expression deve ser convertido explicitamente em um tipo de dados de valor grande.

Comentários

REPLACE efetua comparações com base no agrupamento da entrada. Para efetuar uma comparação em um agrupamento especificado, é possível usar COLLATE para aplicar um agrupamento explícito à entrada.

0x0000 (char(0)) é um caractere indefinido em agrupamentos do Windows e não pode ser incluído em REPLACE.

Exemplos

O exemplo a seguir substitui a cadeia de caracteres cde em abcdefghi por xxx.

SELECT REPLACE('abcdefghicde','cde','xxx');
GO

Aqui está o conjunto de resultados.

------------
abxxxfghixxx
(1 row(s) affected)

O exemplo a seguir usa a função COLLATE.

SELECT    REPLACE('Das ist ein Test'  COLLATE Latin1_General_BIN,
'Test', 'desk' );
GO

Aqui está o conjunto de resultados.

------------
Das ist ein desk
(1 row(s) affected)