Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: SQL Server 2017 (14.x) och senare versioner
Av Azure SQL Database
Azure 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 |