- 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¶
subjectO assunto é a cadeia de caracteres na qual se fazem as substituições. Normalmente, esta é uma coluna, mas pode ser um literal.
patternEsta é 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.
replacementEste é o valor utilizado como um substituto para
pattern. Se isto for omitido, ou se for uma cadeia de caracteres vazia, então a funçãoREPLACEsimplesmente 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
replacementnão for especificado,subjecté devolvido com todas as ocorrências depatternremovidas.Se
replacementfor especificado,subjectserá devolvido com todas as ocorrências depatternsubstituí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).
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 carfoi substituída pela cadeia de caracteresnew car.Na cadeia de caracteres
sad face, a subcadeia de caracteressadfoi substituída pela subcadeia de caractereshappypara criar a nova cadeia de caractereshappy face.Na cadeia de caracteres
snowman, a subcadeia de caracteressnowfoi substituída pela subcadeia de caracteresfirepara criar a nova cadeia de caracteresfireman.