TERJEMAHKAN (SQL Bertransaksi)

Berlaku untuk:yes SQL Server 2017 (14.x) dan Yesyang lebih baru Azure SQL Database YesAzure 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

Lihat juga