Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2017 (14.x) a novější verze
Azure SQL Database
Azure SQL Managed Instance
Vrátí řetězec zadaný jako první argument, jakmile se některé znaky zadané v druhém argumentu přeloží do cílové sady znaků zadané ve třetím argumentu.
Syntaxe
TRANSLATE ( inputString, characters, translations )
Arguments
inputString
Řetězcový výraz , který se má prohledávat. inputString může být libovolný datový typ znaku (nvarchar, varchar, nchar, char).
znaky
Řetězcový výraz obsahující znaky, které by měly být nahrazeny. znaky mohou být libovolným datovým typem znaků.
překlady
Řetězcový výraz obsahující náhradní znaky. překlady musí být stejný datový typ a délka jako znaky.
Návratové typy
Vrátí výraz znaku stejného datového typu jako inputString , kde jsou znaky z druhého argumentu nahrazeny odpovídajícími znaky z třetího argumentu.
Poznámky
TRANSLATE vrátí chybu, pokud mají výrazy znaků a překladů různé délky.
TRANSLATE vrátí hodnotu NULL, pokud některý z argumentů má hodnotu NULL.
Chování TRANSLATE funkce je podobné použití více funkcí REPLACE .
TRANSLATE nenahrazuje však žádný jednotlivý znak inputString více než jednou. Jedna hodnota v parametru characters může nahradit více znaků v inputString.
To se liší od chování více REPLACE funkcí, protože každé volání funkce by nahradilo všechny relevantní znaky, i když byly nahrazeny předchozím voláním vnořené REPLACE funkce.
TRANSLATE je vždy s vědomím kolace SC. Další informace o doplňkových kolacích najdete v tématu Podpora kolace a Unicode.
Examples
A. Nahrazení čtvercových a složených závorek běžnými složenými závorkami
Následující dotaz nahradí čtvercové a složené závorky ve vstupním řetězci závorkami:
SELECT TRANSLATE('2*[3+4]/{7-2}', '[]{}', '()()');
Tady je soubor výsledků.
2*(3+4)/(7-2)
Ekvivalentní volání funkce NAHRADIT
V následujícím příkazu SELECT se zobrazí skupina čtyř vnořených volání funkce REPLACE. Tato skupina je ekvivalentní volání funkce TRANSLATE v předchozím příkazu SELECT:
SELECT
REPLACE
(
REPLACE
(
REPLACE
(
REPLACE
(
'2*[3+4]/{7-2}',
'[',
'('
),
']',
')'
),
'{',
'('
),
'}',
')'
);
B. Převod bodů GeoJSON na WKT
GeoJSON je formát pro kódování několika geografických datových struktur.
TRANSLATE Díky funkci můžou vývojáři snadno převést GeoJSON body do formátu WKT a naopak. Následující dotaz nahradí čtvercové a složené závorky ve vstupu běžnými složenými závorkami:
SELECT TRANSLATE('[137.4,72.3]' , '[,]', '( )') AS Point,
TRANSLATE('(137.4 72.3)' , '( )', '[,]') AS Coordinates;
Tady je soubor výsledků.
| Point | Souřadnice |
|---|---|
| (137.4 72.3) | [137.4,72.3] |
C. Použití funkce TRANSLATE
SELECT TRANSLATE('abcdef','abc','bcd') AS Translated,
REPLACE(REPLACE(REPLACE('abcdef','a','b'),'b','c'),'c','d') AS Replaced;
Tady je soubor výsledků.
| Přeložený | Nahrazený |
|---|---|
| bcddef | ddddef |