- 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> ] )
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¶
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 | +-----------------------+
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 | +----------+---------+-------------+------------+