TRANSLATE (Transact-SQL)TRANSLATE (Transact-SQL)

Se aplica a:Applies to: síSQL Server 2017 (14.x)SQL Server 2017 (14.x)yesSQL Server 2017 (14.x)SQL Server 2017 (14.x) y versiones posteriores SíAzure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL DatabaseSe aplica a:Applies to: síSQL Server 2017 (14.x)SQL Server 2017 (14.x)yesSQL Server 2017 (14.x)SQL Server 2017 (14.x) and later SíAzure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database

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.Returns the string provided as a first argument after some characters specified in the second argument are translated into a destination set of characters specified in the third argument.

SintaxisSyntax

TRANSLATE ( inputString, characters, translations)

Nota

Para ver la sintaxis de Transact-SQL para SQL Server 2014 y versiones anteriores, consulte Versiones anteriores de la documentación.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

ArgumentosArguments

inputString es la expresión de cadena que se va a buscar.inputString Is the string expression to be searched. inputString puede ser cualquier tipo de datos de carácter (nvarchar, varchar, nchar, char).inputString can be any character data type (nvarchar, varchar, nchar, char).

characters es una expresión de cadena que contiene caracteres que se deben reemplazar.characters Is a string expression containing characters that should be replaced. characters puede ser cualquier tipo de datos de caracteres.characters can be any character data type.

translations es una expresión de cadena que contiene los caracteres de reemplazo.translations Is a string expression containing the replacement characters. translations debe tener el mismo tipo de datos y la misma longitud que characters.translations must be the same data type and length as characters.

Tipos de valor devueltoReturn Types

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.Returns a character expression of the same data type as inputString where characters from the second argument are replaced with the matching characters from third argument.

ObservacionesRemarks

La función TRANSLATE devolverá un error si las expresiones characters y translations tienen longitudes diferentes.TRANSLATE will return an error if characters and translations expressions have different lengths. TRANSLATE devolverá NULL si alguno de los argumentos es NULL.TRANSLATE will return NULL if any of the arguments are NULL.

El comportamiento de la función TRANSLATE es equivalente a usar varias funciones REPLACE.The behavior of the TRANSLATE function is similar to using multiple REPLACE functions. Pero TRANSLATE no reemplaza ningún carácter individual en inputString más de una vez.TRANSLATE does not, however, replace any individual character in inputString more than once. Un valor único en el parámetro characters puede reemplazar varios caracteres en inputString.A single value in the characters parameter, can replace multiple characters in 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.This is dissimilar to the behavior of multiple REPLACE functions, as each function call would replace all relevant characters, even if they had been replaced by a previous nested REPLACE function call.

TRANSLATE siempre reconoce la intercalación de SC.TRANSLATE is always SC collation aware.

EjemplosExamples

A.A. Reemplazar corchetes y llaves con llaves normalesReplace square and curly braces with regular braces

En esta consulta se reemplazan corchetes y llaves en la cadena de entrada entre paréntesis:The following query replaces square and curly braces in the input string with parentheses:

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

El conjunto de resultados es el siguiente:Here is the result set.

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

Llamadas equivalentes a REPLACEEquivalent calls to REPLACE

En la siguiente instrucción SELECT, hay un grupo de cuatro llamadas anidadas a la función REPLACE.In the following SELECT statement, there is a group of four nested calls to the REPLACE function. Este grupo es equivalente a la llamada realizada a la función TRANSLATE de la instrucción SELECT anterior:This group is equivalent to the one call made to the TRANSLATE function in the preceding SELECT:

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

B.B. Convertir puntos GeoJSON en WKTConvert GeoJSON points into WKT

GeoJSON es un formato para codificar una variedad de estructuras de datos geográficos.GeoJSON is a format for encoding a variety of geographic data structures. Con la función TRANSLATE, los desarrolladores pueden convertir fácilmente los puntos GeoJSON a formato WKT y viceversa.With the TRANSLATE function, developers can easily convert GeoJSON points to WKT format and vice versa. En esta consulta se reemplazan corchetes y llaves en la entrada con llaves normales:The following query replaces square and curly braces in input with regular braces:

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

El conjunto de resultados es el siguiente:Here is the result set.

PuntoPoint CoordenadasCoordinates
(137.4 72.3)(137.4 72.3) [137.4,72.3][137.4,72.3]

C.C. Uso de la función TRANSLATEUse the TRANSLATE function

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

Los resultados son:The results are:

TraducidosTranslated ReemplazadosReplaced
bcddefbcddef ddddefddddef

Consulte tambiénSee Also