Bagikan melalui


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

Lihat juga