SOUNDEX (SQL bertransaksi)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics Analytics yesPlatform System (PDW)

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

Topic link iconKonvensi Sintaksis T-SQL

Sintaks

SOUNDEX ( character_expression )  

Catatan

Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

character_expression
Adalah 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 dari kode adalah angka yang mewakili huruf dalam ekspresi. Huruf A, E, I, O, U, H, W, dan Y diabaikan kecuali huruf tersebut adalah huruf pertama dari string. Nol ditambahkan di akhir jika perlu untuk menghasilkan kode empat karakter. Untuk informasi selengkapnya tentang kode SOUNDEX, lihat Sistem Pengindeksan Soundex.

Kode SOUNDEX dari string yang berbeda dapat dibandingkan dengan melihat seberapa mirip suara string saat diucapkan. Fungsi DIFFERENCE melakukan SOUNDEX pada dua string, dan mengembalikan bilangan bulat yang mewakili seberapa mirip kode SOUNDEX 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.

  • Tumpukan yang berisi kolom komputasi bertahan yang ditentukan dengan SOUNDEX tidak dapat dikueri sampai tumpukan dibangun kembali dengan menjalankan pernyataan ALTER TABLE <table> REBUILD.

  • Batasan CHECK yang ditentukan dengan SOUNDEX dinonaktifkan saat peningkatan. Untuk mengaktifkan batasan, jalankan pernyataan ALTER TABLE <table> WITH CHECK CHECK CONSTRAINT ALL.

  • Indeks (termasuk tampilan terindeks) yang berisi kolom komputasi bertahan yang ditentukan dengan SOUNDEX tidak dapat dikueri sampai indeks dibangun kembali dengan menjalankan pernyataan ALTER INDEX ALL ON <object> REBUILD.

Contoh

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.

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

Berikut adalah hasil yang ditetapkan. Berlaku untuk kolajek Latin1_General.

S530  S530    

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.

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

Berikut adalah hasil yang ditetapkan. Berlaku untuk kolajek 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 adalah hasil yang ditetapkan. Berlaku untuk kolajek Latin1_General.

2             

Lihat juga

PERBEDAAN (SQL Bertransaksi)
Fungsi String (SQL Transact)
ALTER DATABASE Compatibility Level (Transact-SQL)