Categorias:

Funções de cadeia de caracteres e binários (Correspondência/Comparação)

REPLACE

Remove todas as ocorrências de uma subcadeia de caracteres especificada e, opcionalmente, substitui-as por outra cadeia de caracteres.

Sintaxe

REPLACE( <subject> , <pattern> [ , <replacement> ] )
Copy

Argumentos

subject

O assunto é a cadeia de caracteres na qual se fazem as substituições. Normalmente, esta é uma coluna, mas pode ser um literal.

pattern

Esta é a subcadeia de caracteres que você deseja substituir. Tipicamente, isto é um literal, mas pode ser uma coluna ou expressão. Note que esta não é uma “expressão regular”; se você quiser usar expressões regulares para procurar um padrão, use a função REGEXP_REPLACE.

replacement

Este é o valor utilizado como um substituto para pattern. Se isto for omitido, ou se for uma cadeia de caracteres vazia, então a função REPLACE simplesmente elimina todas as ocorrências do pattern.

Retornos

O valor retornado é a cadeia de caracteres depois de todas as substituições terem sido feitas.

Notas de uso

  • Se replacement não for especificado, subject é devolvido com todas as ocorrências de pattern removidas.

  • Se replacement for especificado, subject será devolvido com todas as ocorrências de pattern substituídas por replacement.

  • Se algum dos argumentos for um NULL, o resultado também será um NULL.

Nota

Somente as ocorrências no subject original são consideradas. Um pattern que ocorre no resultado não é removido/substituído.

Detalhes do agrupamento

Arguments with collation specifications are currently not supported.

Exemplos

Substituir bc cadeia de caracteres em abcd por uma cadeia de caracteres vazia:

SELECT REPLACE('abcd', 'bc') FROM DUAL;

+-----------------------+
| REPLACE('ABCD', 'BC') |
|-----------------------|
| ad                    |
+-----------------------+
Copy

Substituir as cadeias de caracteres em um valor por um substituto especificado:

CREATE OR REPLACE TABLE replace_example(subject varchar(10), pattern varchar(10), replacement varchar(10));
INSERT INTO replace_example VALUES('snowman', 'snow', 'fire'), ('sad face', 'sad', 'happy');

SELECT subject, pattern, replacement, REPLACE(subject, pattern, replacement) AS new FROM replace_example;

+----------+---------+-------------+------------+
| SUBJECT  | PATTERN | REPLACEMENT | NEW        |
|----------+---------+-------------+------------|
| snowman  | snow    | fire        | fireman    |
| sad face | sad     | happy       | happy face |
+----------+---------+-------------+------------+
Copy