TRANSLATE (Transact-SQL)

Se aplica a: SQL Server 2017 (14.x) y versiones posteriores Azure SQL DatabaseAzure SQL Managed Instance

Devuelve la cadena proporcionada como primer argumento después de que algunos caracteres especificados en el segundo argumento se hayan convertido en un conjunto de destino de caracteres especificado en el tercer argumento.

Sintaxis

TRANSLATE ( inputString, characters, translations )

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

inputString

Expresión de cadena en la que se va a buscar. inputString puede ser cualquier tipo de datos de carácter (nvarchar, varchar, nchar, char).

characters

Es una expresión de cadena que contiene caracteres que se deben reemplazar. characters puede ser cualquier tipo de datos de caracteres.

traducciones

Es una expresión de cadena que contiene los caracteres de sustitución. translations debe tener el mismo tipo de datos y la misma longitud que characters.

Tipos de valores devueltos

Devuelve una expresión de caracteres del mismo tipo de datos que inputString, donde se reemplazan los caracteres del segundo argumento con los caracteres coincidentes del tercer argumento.

Comentarios

La función TRANSLATE devolverá un error si las expresiones characters y translations tienen longitudes diferentes. TRANSLATE devolverá NULL si alguno de los argumentos es NULL.

El comportamiento de la función TRANSLATE es equivalente a usar varias funciones REPLACE. Pero TRANSLATE no reemplaza ningún carácter individual en inputString más de una vez. Un valor único en el parámetro characters puede reemplazar varios caracteres en inputString.

Esto es diferente al comportamiento de varias funciones REPLACE, ya que cada llamada de función reemplazaría todos los caracteres pertinentes, incluso si se hubieran reemplazado por una llamada de función REPLACE anidada anterior.

TRANSLATE siempre reconoce la intercalación de SC. Para obtener más información sobre las intercalaciones, vea Compatibilidad con la intercalación y Unicode.

Ejemplos

A. Reemplazar corchetes y llaves con llaves normales

En esta consulta se reemplazan corchetes y llaves en la cadena de entrada entre paréntesis:

SELECT TRANSLATE('2*[3+4]/{7-2}', '[]{}', '()()');

El conjunto de resultados es el siguiente:

2*(3+4)/(7-2)

Llamadas equivalentes a REPLACE

En la siguiente instrucción SELECT, hay un grupo de cuatro llamadas anidadas a la función REPLACE. Este grupo es equivalente a la llamada realizada a la función TRANSLATE de la instrucción SELECT anterior:

SELECT
REPLACE
(
      REPLACE
      (
            REPLACE
            (
                  REPLACE
                  (
                        '2*[3+4]/{7-2}',
                        '[',
                        '('
                  ),
                  ']',
                  ')'
            ),
            '{',
            '('
      ),
      '}',
      ')'
);

B. Convertir puntos GeoJSON en WKT

GeoJSON es un formato para codificar una variedad de estructuras de datos geográficos. Con la función TRANSLATE, los desarrolladores pueden convertir fácilmente los puntos GeoJSON a formato WKT y viceversa. En esta consulta se reemplazan corchetes y llaves en la entrada con llaves normales:

SELECT TRANSLATE('[137.4,72.3]' , '[,]', '( )') AS Point,
    TRANSLATE('(137.4 72.3)' , '( )', '[,]') AS Coordinates;

El conjunto de resultados es el siguiente:

Punto Coordenadas
(137.4 72.3) [137.4,72.3]

C. Uso de la función TRANSLATE

SELECT TRANSLATE('abcdef','abc','bcd') AS Translated,
       REPLACE(REPLACE(REPLACE('abcdef','a','b'),'b','c'),'c','d') AS Replaced;

El conjunto de resultados es el siguiente:

Traducidos Reemplazados
bcddef ddddef

Consulte también