TERJEMAHKAN (Transact-SQL)
Berlaku untuk: SQL Server 2017 (14.x) dan azure SQL Database Azure SQL Managed Instance yang lebih baru
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 )
Argumen
inputString
Ekspresi string yang akan dicari. inputString dapat berupa jenis data karakter apa pun (nvarchar, varchar, nchar, char).
Karakter
Ekspresi string yang berisi karakter yang harus diganti. karakter dapat berupa jenis data karakter apa pun.
Terjemahan
Ekspresi string yang berisi karakter pengganti. terjemahan harus memiliki tipe dan panjang data yang sama dengan karakter.
Jenis yang dikembalikan
Mengembalikan ekspresi karakter dari jenis data yang sama dengan inputString 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 mirip dengan menggunakan beberapa fungsi REPLACE . TRANSLATE
namun, tidak mengganti karakter inputString
individu dalam 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. Untuk informasi selengkapnya tentang kolatasi tambahan, lihat Dukungan Kolate dan Unicode.
Contoh
J. 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 set hasilnya.
2*(3+4)/(7-2)
Panggilan setara ke REPLACE
Dalam pernyataan SELECT berikut, Anda akan melihat 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 beberapa 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 set hasilnya.
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;
Berikut set hasilnya.
Diterjemahkan | Diganti |
---|---|
bcddef | ddddef |