Di SQL Server, T-SQL TRANSLATE()
fungsi mengembalikan string yang diberikan sebagai argumen pertama setelah beberapa karakter yang ditentukan dalam argumen kedua diterjemahkan ke dalam kumpulan karakter tujuan yang ditentukan dalam argumen ketiga.
Ini mirip dengan REPLACE()
fungsi, tetapi dengan beberapa perbedaan penting.
TRANSLATE()
fungsi membutuhkan 3 argumen; string input, karakter yang akan diganti, dan karakter yang akan diganti.
Sintaks
Sintaksnya seperti ini:
TRANSLATE ( inputString, characters, translations)
Dimana inputString adalah string yang berisi karakter yang akan diganti.
karakter argumen menentukan karakter mana yang harus diganti.
Terjemahan argumen menentukan dengan apa karakter tersebut harus diganti.
Contoh 1 – Penggunaan Dasar
Berikut ini contoh cara kerjanya:
SELECT TRANSLATE('Cat', 'at', 'ow') AS Result;
Hasil:
+----------+ | Result | |----------| | Cow | +----------+
Jadi dalam contoh ini, a
dan t
karakter diganti dengan o
dan w
.
Dalam hal ini, REPLACE()
fungsi akan menghasilkan hasil yang sama. Berikut adalah dua fungsi berdampingan:
SELECT TRANSLATE('Cat', 'at', 'ow') AS 'TRANSLATE', REPLACE('Cat', 'at', 'ow') AS 'REPLACE';
Hasil:
+-------------+-----------+ | TRANSLATE | REPLACE | |-------------+-----------| | Cow | Cow | +-------------+-----------+
Dalam hal ini, hasil untuk kedua fungsi adalah sama, tetapi untuk alasan yang berbeda.
Inilah yang dilakukan setiap fungsi:
TRANSLATE()
menggantikana
dant
(setiap karakter individu)REPLACE()
digantiat
(tali)
Contoh 2 – Pesanan Campuran
Contoh ini menunjukkan di mana TRANSLATE()
berbeda dari REPLACE()
. Dalam contoh ini, saya mengubah urutan karakter yang akan diganti, serta karakter yang akan diganti:
SELECT TRANSLATE('Cat', 'ta', 'wo') AS 'TRANSLATE', REPLACE('Cat', 'ta', 'wo') AS 'REPLACE';
Hasil:
+-------------+-----------+ | TRANSLATE | REPLACE | |-------------+-----------| | Cow | Cat | +-------------+-----------+
Dalam hal ini hanya TRANSLATE()
fungsi mulai berlaku. Ini karena fungsi ini melewati setiap karakter satu per satu. REPLACE()
fungsi di sisi lain, mencari seluruh string, dalam urutan yang persis sama.
Contoh 3 – Contoh yang Lebih Kuat
Contoh berikut didasarkan pada dokumentasi Microsoft untuk TRANSLATE()
fungsi. Ini menunjukkan skenario di mana fungsi ini memiliki manfaat yang signifikan atas REPLACE()
fungsi:
SELECT TRANSLATE('2*[3+4]/{7-2}', '[]{}', '()()') AS Result;
Hasil:
+---------------+ | Result | |---------------| | 2*(3+4)/(7-2) | +---------------+
Untuk mendapatkan hasil yang setara menggunakan REPLACE()
fungsi, kita perlu melakukan ini:
SELECT REPLACE ( REPLACE ( REPLACE ( REPLACE ( '2*[3+4]/{7-2}', '[', '(' ), ']', ')' ), '{', '(' ), '}', ')' ) AS Result;
Hasil:
+---------------+ | Result | |---------------| | 2*(3+4)/(7-2) | +---------------+