Cadenas

TRANSLATE

Sustituye caracteres sueltos por otros, cada uno por el suyo, en una sola pasada.

Sintaxis

TRANSLATE(<texto>, <caracteres>, <reemplazos>)

Toma los caracteres del segundo argumento y sustituye cada uno por el que ocupa la misma posición en el tercero: el primero por el primero, el segundo por el segundo. Los caracteres que se quedan sin pareja simplemente se eliminan. Útil para quitar símbolos sobrantes o sustituir varios caracteres a la vez.

Datos para los ejemplos

employees

namedepartmentsalarybonusphone
Emmabackend1200300+44 7700 900123
Liambackend1000NULLNULL
Oliviafrontend1350150+44 7700 900456
Noahfrontend950NULL+44 7700 900789
Sophiadesign1200200NULL

Estas tablas ya están creadas en el entorno de pruebas y los ejemplos de abajo las usan. ¿Quieres repetirlo en tu propia base de datos? Copia el SQL.

Carácter por carácter
SELECT TRANSLATE('2026/09/13', '/', '-') AS dashed;
dashed
2026-09-13
Quitar paréntesis y espacios
SELECT TRANSLATE('+44 (0) 7700', '() ', '') AS cleaned;
cleaned
+4407700

El tercer argumento no tiene ninguna pareja, así que los paréntesis y los espacios simplemente desaparecen.

Teléfonos sin el signo más ni espacios
SELECT name, phone,
TRANSLATE(phone, '+ ', '') AS digits
FROM employees;
namephonedigits
Emma+44 7700 900123447700900123
LiamNULLNULL
Olivia+44 7700 900456447700900456
Noah+44 7700 900789447700900789
SophiaNULLNULL

Ten en cuenta

Sustituye caracteres, no palabras: TRANSLATE('cat', 'cat', 'dog') da dog, pero TRANSLATE('act', 'cat', 'dog') da odg: cada letra por separado.

Los caracteres sin pareja en el tercer argumento se eliminan: TRANSLATE('a-b-c', '-', '') quita todos los guiones.

Para sustituir palabras enteras, usa REPLACE; para patrones, REGEXP_REPLACE.

Funciones relacionadas