TRANSLATE (Transact-SQL)

Aplica-se a: simSQL Server 2017 (14.x) e posterior SimBanco de Dados SQL do Azure SimInstância Gerenciada do Azure SQL

Retorna a cadeia de caracteres fornecida como um primeiro argumento após a conversão de alguns caracteres especificados no segundo argumento em um conjunto de caracteres de destino especificado no terceiro argumento.

Sintaxe

TRANSLATE ( inputString, characters, translations)

Observação

Para ver a sintaxe do Transact-SQL para o SQL Server 2014 e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

inputString É a expressão de cadeia de caracteres a ser pesquisada. inputString pode ser qualquer tipo de dados de caractere (nvarchar, varchar, nchar, char).

characters É uma expressão de cadeia de caracteres que contém caracteres que devem ser substituídos. caracteres pode ser qualquer tipo de dados de caractere.

translations É uma expressão de cadeia de caracteres que contém os caracteres de substituição. translations deve ser do mesmo tipo de dados e comprimento de characters.

Tipos de retorno

Retorna uma expressão de caractere do mesmo tipo de dados que inputString, em que os caracteres do segundo argumento são substituídos pelos caracteres correspondentes do terceiro argumento.

Comentários

TRANSLATE retornará um erro se as expressões characters e translations tiverem tamanhos diferentes. TRANSLATE retornará NULL se qualquer um dos argumentos for NULL.

O comportamento da função TRANSLATE é semelhante ao uso de várias funções REPLACE. TRANSLATE, no entanto, não substitui qualquer caractere individual em inputString mais de uma vez. Um valor no parâmetro characters pode substituir vários caracteres em inputString.

Isso é diferente do comportamento de várias funções REPLACE, pois cada chamada de função substitui todos os caracteres relevantes, mesmo que eles tenham sido substituídos por uma chamada de função REPLACE aninhada anteriormente.

TRANSLATE sempre reconhece a ordenação SC.

Exemplos

a. Substituir chaves e colchetes por chaves normais

A seguinte consulta substitui chaves e colchetes na cadeia de entrada por parênteses:

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

Este é o conjunto de resultados.

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

Chamadas equivalentes para REPLACE

Na instrução SELECT a seguir, há um grupo de quatro chamadas aninhadas para a função REPLACE. Esse grupo é equivalente a uma chamada feita para a função TRANSLATE no SELECT anterior:

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

B. Converter pontos GeoJSON em WKT

GeoJSON é um formato de codificação de uma variedade de estruturas de dados geográficos. Com a função TRANSLATE, os desenvolvedores podem converter com facilidade pontos GeoJSON no formato WKT e vice-versa. A seguinte consulta substitui chaves e colchetes na entrada por chaves normais:

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

Este é o conjunto de resultados.

Point Coordenadas
(137.4 72.3) [137.4, 72.3]

C. Use a função TRANSLATE

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

Os resultados são:

Traduzido Substituído
bcddef ddddef

Consulte Também