Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana Fungsi TRANSLATE() Bekerja di SQL Server (T-SQL)

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() menggantikan a dan t (setiap karakter individu)
  • REPLACE() diganti at (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) |
+---------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menginstal sampel database AdventureWorks di Microsoft SQL Server 2012

  2. SQL Server memblokir akses ke prosedur 'sys.sp_OACreate' dari komponen 'Ole Automation Procedures'

  3. Menggabungkan nilai baris T-SQL

  4. Cara Menggunakan Pencarian Semantik di SQL Server

  5. Bagaimana cara menambahkan atribut khusus ke string koneksi SQL?