- 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> ] )
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çãoREPLACE
simplesmente elimina todas as ocorrências dopattern
.
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 depattern
removidas.Se
replacement
for especificado,subject
será devolvido com todas as ocorrências depattern
substituídas porreplacement
.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');
Exemplos¶
Substitua a cadeia de caracteres down
pela cadeia de caracteres up
:
SELECT REPLACE('down', 'down', 'up');+-------------------------------+ | 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');+-------------------------------------------------+ | 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');+-----------------------+ | 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');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;+----------+---------+-------------+------------+ | 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 caracteresnew car
.Na cadeia de caracteres
sad face
, a subcadeia de caracteressad
foi substituída pela subcadeia de caractereshappy
para criar a nova cadeia de caractereshappy face
.Na cadeia de caracteres
snowman
, a subcadeia de caracteressnow
foi substituída pela subcadeia de caracteresfire
para criar a nova cadeia de caracteresfireman
.