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ópico Convenções da sintaxe Transact-SQL

Sintaxe

REPLACE ( string_expression , string_pattern , string_replacement )

Argumentos

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

  • string_pattern
    É a subcadeia de caracteres a ser localizada. string_pattern pode ser de um caractere ou de tipo de dados binários. string_pattern não pode ser uma cadeia de caracteres vazia ("), e não deve exceder o número máximo de bytes que cabem em uma página.

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

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)

Consulte também

Referência

Tipos de dados (Transact-SQL)

Funções de cadeia de caracteres (Transact-SQL)