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

SE APLICA A: síSQL Server síAzure SQL Database noAzure Synapse Analytics (SQL DW) noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

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)

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 devueltosReturn 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.

NotasRemarks

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 un carácter más de una vez.TRANSLATE does not, however, replace a character more than once. Esto es diferente a varias funciones REPLACE, ya que en cada uso se reemplazarían todos los caracteres pertinentes.This is dissimilar to multiple REPLACE functions, as each use would replace all relevant characters.

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

CONCAT (Transact-SQL)CONCAT (Transact-SQL)
CONCAT_WS (Transact-SQL)CONCAT_WS (Transact-SQL)
FORMATMESSAGE (Transact-SQL)FORMATMESSAGE (Transact-SQL)
QUOTENAME (Transact-SQL)QUOTENAME (Transact-SQL)
REPLACE (Transact-SQL)REPLACE (Transact-SQL)
REVERSE (Transact-SQL)REVERSE (Transact-SQL)
STRING_AGG (Transact-SQL)STRING_AGG (Transact-SQL)
STRING_ESCAPE (Transact-SQL)STRING_ESCAPE (Transact-SQL)
STUFF (Transact-SQL)STUFF (Transact-SQL)
String Functions (Transact-SQL) [Funciones de cadena (Transact-SQL)]String Functions (Transact-SQL)