TERJEMAHKAN (SQL Bertransaksi)
Berlaku untuk:
SQL Server 2017 (14.x) dan
yang lebih baru Azure SQL Database
Azure SQL Managed Instance
Mengembalikan string yang disediakan sebagai argumen pertama setelah beberapa karakter yang ditentukan dalam argumen kedua diterjemahkan ke dalam sekumpulan karakter tujuan yang ditentukan dalam argumen ketiga.
Sintaks
TRANSLATE ( inputString, characters, translations)
Catatan
Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.
Argumen
inputString Adalah ekspresi string yang akan dicari. inputString dapat berupa jenis data karakter apa pun (nvarchar, varchar, nchar, char).
Karakter Adalah ekspresi string yang berisi karakter yang harus diganti. karakter dapat berupa jenis data karakter apa pun.
Terjemahan Adalah ekspresi string yang berisi karakter pengganti. terjemahan harus memiliki tipe dan panjang data yang sama dengan karakter.
Jenis Pengembalian
Mengembalikan ekspresi karakter dari jenis inputString data yang sama dengan di mana karakter dari argumen kedua diganti dengan karakter yang cocok dari argumen ketiga.
Keterangan
TRANSLATE akan mengembalikan kesalahan jika karakter dan ekspresi terjemahan memiliki panjang yang berbeda. TRANSLATE akan mengembalikan NULL jika salah satu argumen adalah NULL.
Perilaku TRANSLATE fungsi ini mirip dengan menggunakan beberapa fungsi REPLACE . TRANSLATE namun, tidak menggantikan setiap karakter individu dalam inputString lebih dari sekali. Satu nilai dalam characters parameter, dapat menggantikan beberapa karakter di inputString.
Ini berbeda dengan perilaku beberapa REPLACE fungsi, karena setiap panggilan fungsi akan menggantikan semua karakter yang relevan, bahkan jika mereka telah digantikan oleh panggilan fungsi berlapis REPLACE sebelumnya.
TRANSLATE selalu sadar kolabasi SC.
Contoh
A. Ganti kurung kurawal dan kurawal dengan kurung kurawal biasa
Kueri berikut menggantikan kurung kurawal dan kurung kurawal dalam string input dengan tanda kurung:
SELECT TRANSLATE('2*[3+4]/{7-2}', '[]{}', '()()');
Berikut adalah hasil yang ditetapkan.
2*(3+4)/(7-2)
Panggilan setara ke REPLACE
Dalam pernyataan SELECT berikut, ada sekelompok empat panggilan berlapis ke fungsi REPLACE. Grup ini setara dengan satu panggilan yang dilakukan ke fungsi TRANSLATE di SELECT sebelumnya:
SELECT
REPLACE
(
REPLACE
(
REPLACE
(
REPLACE
(
'2*[3+4]/{7-2}',
'[',
'('
),
']',
')'
),
'{',
'('
),
'}',
')'
);
B. Mengonversi titik GeoJSON menjadi WKT
GeoJSON adalah format untuk mengodekan berbagai struktur data geografis. Dengan fungsi ini TRANSLATE , pengembang dapat dengan mudah mengonversi titik GeoJSON ke format WKT dan sebaliknya. Kueri berikut menggantikan kurung kurawal dan kurawal dalam input dengan kurung kurawal reguler:
SELECT TRANSLATE('[137.4,72.3]' , '[,]', '( )') AS Point,
TRANSLATE('(137.4 72.3)' , '( )', '[,]') AS Coordinates;
Berikut adalah hasil yang ditetapkan.
| Titik | Koordinat |
|---|---|
| (137.4 72.3) | [137.4,72.3] |
C. Menggunakan fungsi TRANSLATE
SELECT TRANSLATE('abcdef','abc','bcd') AS Translated,
REPLACE(REPLACE(REPLACE('abcdef','a','b'),'b','c'),'c','d') AS Replaced;
Hasilnya adalah:
| Diterjemahkan | Diganti |
|---|---|
| bcddef | ddddef |