Función TRANSLATE - Amazon Redshift

Función TRANSLATE

Para una expresión dada, reemplaza todas las coincidencias de caracteres especificados con sustitutos especificados. Los caracteres existentes se asignan a caracteres de reemplazo en función de su posición en los argumentos characters_to_replace y characters_to_substitute. Si se especifican más caracteres en el argumento characters_to_replace que en el argumento characters_to_substitute, los caracteres adicionales del argumento characters_to_replace se omiten en el valor devuelto.

TRANSLATE es similar a Función REPLACE y a Función REGEXP_REPLACE, salvo que REPLACE sustituye una cadena entera por otra cadena y REGEXP_REPLACE le permite buscar un patrón de expresión regular en una cadena para, mientras que TRANSLATE realiza varias sustituciones de caracteres únicos.

Si un argumento es nulo, el valor de retorno es NULL.

Sintaxis

TRANSLATE( expression, characters_to_replace, characters_to_substitute )

Argumentos

expresión

La expresión que se traducirá.

characters_to_replace

Una cadena que tiene los caracteres que se reemplazarán.

characters_to_substitute

Una cadena que tiene los caracteres que se sustituirán.

Tipo de retorno

VARCHAR

Ejemplos

Para sustituir varios caracteres en una cadena, use el siguiente ejemplo.

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

En los siguientes ejemplos se utilizan datos de la tabla USERS en la base de datos de ejemplo TICKIT. Para obtener más información, consulte Base de datos de muestra.

Para reemplazar el signo (@) con un punto para todos los valores en una columna, use el siguiente ejemplo.

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 reemplazar espacios con guiones bajos y quitar los puntos para todos los valores en una columna, use el siguiente ejemplo.

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