Dela via


ÖVERSÄTTA (Transact-SQL)

Gäller för: SQL Server 2017 (14.x) och senare versioner Av Azure SQL DatabaseAzure SQL Managed Instance

Returnerar strängen som anges som ett första argument, efter att vissa tecken som anges i det andra argumentet har översatts till en måluppsättning med tecken, som anges i det tredje argumentet.

Syntax

TRANSLATE ( inputString, characters, translations )

Arguments

inputString

Stränguttrycket som ska sökas igenom. inputString kan vara valfri teckendatatyp (nvarchar, varchar, nchar, char).

Tecken

Ett stränguttryck som innehåller tecken som ska ersättas. tecken kan vara valfri teckendatatyp.

Översättningar

Ett stränguttryck som innehåller ersättningstecken. översättningar måste ha samma datatyp och längd som tecken.

Returtyper

Returnerar ett teckenuttryck av samma datatyp som inputString där tecken från det andra argumentet ersätts med matchande tecken från det tredje argumentet.

Anmärkningar

TRANSLATE returnerar ett fel om tecken och översättningsuttryck har olika längd. TRANSLATE returnerar NULL om något av argumenten är NULL.

Funktionens TRANSLATE beteende liknar att använda flera REPLACE-funktioner . TRANSLATE ersätter dock inte något enskilt tecken mer inputString än en gång. Ett enda värde i parametern characters kan ersätta flera tecken i inputString.

Detta skiljer sig från beteendet för flera REPLACE funktioner eftersom varje funktionsanrop skulle ersätta alla relevanta tecken, även om de hade ersatts av ett tidigare kapslat funktionsanrop REPLACE .

TRANSLATE är alltid SC-sorteringsmedveten. Mer information om kompletterande sortering finns i Stöd för sortering och Unicode.

Examples

A. Ersätt klammerparenteser och klammerparenteser med vanliga klammerparenteser

Följande fråga ersätter kvadratiska och klammerparenteser i indatasträngen med parenteser:

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

Här är resultatet.

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

Motsvarande anrop till REPLACE

I följande SELECT-instruktion visas en grupp med fyra kapslade anrop till funktionen REPLACE. Den här gruppen motsvarar det enda anrop som gjordes till funktionen TRANSLATE i föregående SELECT:

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

B. Konvertera GeoJSON-punkter till WKT

GeoJSON är ett format för att koda flera geografiska datastrukturer. Med funktionen TRANSLATE kan utvecklare enkelt konvertera GeoJSON-punkter till WKT-format och vice versa. Följande fråga ersätter kvadratiska och klammerparenteser i indata med vanliga klammerparenteser:

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

Här är resultatet.

Point Koordinater
(137.4 72.3) [137.4,72.3]

C. Använda funktionen TRANSLATE

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

Här är resultatet.

Översatt Ersatt
bcddef ddddef

Se även