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 subcadeia 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

The collation specifications of all input arguments must be compatible.

Esta função não oferece suporte às seguintes especificações de agrupamento:

  • pi (não identifica pontuação).

  • cs-ai (diferencia maiúsculas e minúsculas, não identifica acentos).

Nota

Para usar esta função com uma coluna que tenha os especificadores de agrupamento upper ou lower, você deve ativar o pacote de mudança de comportamento 2024_02 em sua conta.

Para ativar este pacote em sua conta, execute a seguinte instrução:

SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02');
Copy

Exemplos

Substitua a cadeia de caracteres down pela cadeia de caracteres up:

SELECT REPLACE('down', 'down', 'up');
Copy
+-------------------------------+
| REPLACE('DOWN', 'DOWN', 'UP') |
|-------------------------------|
| up                            |
+-------------------------------+

Substitua a subcadeia de caracteres Athens na cadeia de caracteres Vacation in Athens pela subcadeia de caracteres Rome:

SELECT REPLACE('Vacation in Athens', 'Athens', 'Rome');
Copy
+-------------------------------------------------+
| REPLACE('VACATION IN ATHENS', 'ATHENS', 'ROME') |
|-------------------------------------------------|
| Vacation in Rome                                |
+-------------------------------------------------+

Substitua a subcadeia de caracteres bc na cadeia de caracteres abcd por uma subcadeia de caracteres vazia:

SELECT REPLACE('abcd', 'bc');
Copy
+-----------------------+
| REPLACE('ABCD', 'BC') |
|-----------------------|
| ad                    |
+-----------------------+

Substitua os valores em uma tabela por novos valores.

Crie e preencha uma tabela.

CREATE OR REPLACE TABLE replace_example(
  subject VARCHAR(10),
  pattern VARCHAR(10),
  replacement VARCHAR(10));

INSERT INTO replace_example VALUES
  ('old car', 'old car', 'new car'),
  ('sad face', 'sad', 'happy'),
  ('snowman', 'snow', 'fire');
Copy

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

SELECT subject,
       pattern,
       replacement,
       REPLACE(subject, pattern, replacement) AS new
  FROM replace_example
  ORDER BY subject;
Copy
+----------+---------+-------------+------------+
| SUBJECT  | PATTERN | REPLACEMENT | NEW        |
|----------+---------+-------------+------------|
| old car  | old car | new car     | new car    |
| sad face | sad     | happy       | happy face |
| snowman  | snow    | fire        | fireman    |
+----------+---------+-------------+------------+

A saída mostra as seguintes substituições:

  • A cadeia de caracteres old car foi substituída pela cadeia de caracteres new car.

  • Na cadeia de caracteres sad face, a subcadeia de caracteres sad foi substituída pela subcadeia de caracteres happy para criar a nova cadeia de caracteres happy face.

  • Na cadeia de caracteres snowman, a subcadeia de caracteres snow foi substituída pela subcadeia de caracteres fire para criar a nova cadeia de caracteres fireman.