View a markdown version of this page

Función TRANSLATE - Amazon Redshift

Amazon Redshift dejará de admitir la creación de UDF de Python después del 30 de junio de 2026. Empezaremos a aplicarlo por fases. Para obtener más información sobre los detalles del fin de vida de Python y las opciones de migración, consulte la entrada del blog que se publicó el 30 de junio de 2025.

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

expression

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