Função TRANSLATE - Amazon Redshift

Função TRANSLATE

Para dada expressão, substitui todas as ocorrências dos caracteres especificados pelos substitutos especificados. Os caracteres existentes são mapeados aos caracteres de substituição pelas suas posições nos argumentos characters_to_replace e characters_to_substitute. Se mais caracteres estiverem especificados no argumento characters_to_replace que no argumento characters_to_substitute, os caracteres adicionais do argumento characters_to_replace serão omitidos do valor de retorno.

TRANSLATE é semelhante a Função REPLACE e Função REGEXP_REPLACE, exceto que REPLACE substitui uma string inteira por outra string e REGEXP_REPLACE permite que você pesquise uma string quanto a um padrão de expressão regular, enquanto TRANSLATE faz várias substituições de caracteres simples.

Se qualquer um dos argumentos for nulo, o retorno será NULL.

Sintaxe

TRANSLATE( expression, characters_to_replace, characters_to_substitute )

Argumentos

expressão

A expressão a ser traduzida.

characters_to_replace

Uma string contendo os caracteres a serem substituídos.

characters_to_substitute

Uma string contendo os caracteres a substituir.

Tipo de retorno

VARCHAR

Exemplos

Para substituir vários caracteres em uma string, use o exemplo a seguir.

SELECT TRANSLATE('mint tea', 'inea', 'osin'); +-----------+ | translate | +-----------+ | most tin | +-----------+

Os exemplos a seguir usam dados da tabela USERS do banco de dados de amostra TICKIT. Para ter mais informações, consulte Banco de dados de exemplo.

Para substituir o sinal (@) por um ponto final para todos os valores de uma coluna, use o exemplo a seguir.

SELECT email, TRANSLATE(email, '@', '.') as obfuscated_email FROM users LIMIT 10; +---------------------------------------+---------------------------------------+ | email | obfuscated_email | +---------------------------------------+---------------------------------------+ | Cum@accumsan.com | Cum.accumsan.com | | lorem.ipsum@Vestibulumante.com | lorem.ipsum.Vestibulumante.com | | non.justo.Proin@ametconsectetuer.edu | non.justo.Proin.ametconsectetuer.edu | | non.ante.bibendum@porttitortellus.org | non.ante.bibendum.porttitortellus.org | | eros@blanditatnisi.org | eros.blanditatnisi.org | | augue@Donec.ca | augue.Donec.ca | | cursus@pedeacurna.edu | cursus.pedeacurna.edu | | at@Duis.com | at.Duis.com | | quam@facilisisvitaeorci.ca | quam.facilisisvitaeorci.ca | | mi.lorem@nunc.edu | mi.lorem.nunc.edu | +---------------------------------------+---------------------------------------+

Para substituir espaços por sublinhados e remover pontos finais de todos os valores em uma coluna, use o exemplo a seguir.

SELECT city, TRANSLATE(city, ' .', '_') FROM users WHERE city LIKE 'Sain%' OR city LIKE 'St%' GROUP BY city ORDER BY city; +----------------+---------------+ | city | translate | +----------------+---------------+ | Saint Albans | Saint_Albans | | Saint Cloud | Saint_Cloud | | Saint Joseph | Saint_Joseph | | Saint Louis | Saint_Louis | | Saint Paul | Saint_Paul | | St. George | St_George | | St. Marys | St_Marys | | St. Petersburg | St_Petersburg | | Stafford | Stafford | | Stamford | Stamford | | Stanton | Stanton | | Starkville | Starkville | | Statesboro | Statesboro | | Staunton | Staunton | | Steubenville | Steubenville | | Stevens Point | Stevens_Point | | Stillwater | Stillwater | | Stockton | Stockton | | Sturgis | Sturgis | +----------------+---------------+