Bagikan melalui


SOUNDEX (T-SQL)

Berlaku untuk: Titik akhir analitik SQL ServerAzure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft FabricWarehouse di Microsoft Fabric

Mengembalikan kode empat karakter (SOUNDEX) untuk mengevaluasi kesamaan dua string.

Konvensi sintaks transact-SQL

Sintaks

SOUNDEX ( character_expression )

Argumen

character_expression

Ekspresi alfanumerik data karakter. character_expression bisa berupa konstanta, variabel, atau kolom.

Jenis pengembalian

varchar

Keterangan

SOUNDEX mengonversi string alfanumerik menjadi kode empat karakter yang didasarkan pada bagaimana string berbunyi saat diucapkan dalam bahasa Inggris. Karakter pertama kode adalah karakter pertama character_expression, dikonversi ke huruf besar. Karakter kedua hingga keempat kode adalah angka yang mewakili huruf dalam ekspresi. Huruf A, E, I, O, U, H, W, dan Y diabaikan kecuali mereka adalah huruf pertama string. Nol ditambahkan di akhir jika perlu untuk menghasilkan kode empat karakter. Untuk informasi selengkapnya tentang kode SOUNDEX, lihat Sistem Pengindeksan Soundex.

SOUNDEX kode dari string yang berbeda dapat dibandingkan dengan melihat seberapa mirip suara string saat diucapkan. Fungsi DIFFERENCE() melakukan pada dua string, dan mengembalikan bilangan bulat yang mewakili seberapa mirip kode untuk string tersebut.

SOUNDEX sensitif terhadap kolabasi. Fungsi string dapat ditumpuk.

Kompatibilitas SOUNDEX

Di versi SQL Server sebelumnya, fungsi SOUNDEX menerapkan subset aturan SOUNDEX. Di bawah tingkat kompatibilitas database 110 atau lebih tinggi, SQL Server menerapkan sekumpulan aturan yang lebih lengkap.

Setelah meningkatkan ke tingkat kompatibilitas 110 atau lebih tinggi, Anda mungkin perlu membangun kembali indeks, tumpukan, atau batasan CHECK yang menggunakan fungsi SOUNDEX.

  • Timbunan yang berisi kolom komputasi persisten yang ditentukan dengan SOUNDEX tidak dapat dikueri hingga tumpukan dibangun kembali dengan menjalankan pernyataan berikut:

    ALTER TABLE <table> REBUILD;
    
  • CHECK batasan yang ditentukan dengan SOUNDEX dinonaktifkan saat peningkatan. Untuk mengaktifkan batasan, jalankan pernyataan berikut:

    ALTER TABLE <table> WITH CHECK CHECK CONSTRAINT ALL;
    
  • Indeks (termasuk tampilan terindeks) yang berisi kolom komputasi persisten yang ditentukan dengan SOUNDEX tidak dapat dikueri hingga indeks dibangun kembali dengan menjalankan pernyataan berikut:

    ALTER INDEX ALL ON <object> REBUILD;
    

Contoh

Sebuah. Gunakan SOUNDEX

Contoh berikut menunjukkan fungsi SOUNDEX dan fungsi DIFFERENCE terkait. Dalam contoh pertama, nilai standar SOUNDEX dikembalikan untuk semua konsonan. Mengembalikan SOUNDEX untuk Smith dan Smythe mengembalikan hasil SOUNDEX yang sama karena semua vokal, huruf y, huruf ganda, dan huruf h, tidak disertakan.

SELECT SOUNDEX('Smith'),
       SOUNDEX('Smythe');

Berikut set hasilnya. Berlaku untuk kolacek Latin1_General.

S530  S530

B. Gunakan PERBEDAAN

Fungsi membandingkan DIFFERENCE perbedaan hasil SOUNDEX pola. Contoh berikut menunjukkan dua string yang hanya berbeda dalam vokal. Perbedaan yang dikembalikan adalah 4, perbedaan terendah yang mungkin.

SELECT DIFFERENCE('Smithers', 'Smythers');
GO

Berikut set hasilnya. Berlaku untuk kolacek Latin1_General.

4

Dalam contoh berikut, string berbeda dalam konsonan; oleh karena itu, perbedaan yang dikembalikan adalah 2, perbedaan yang lebih besar.

SELECT DIFFERENCE('Anothers', 'Brothers');
GO

Berikut set hasilnya. Berlaku untuk kolacek Latin1_General.

2