Bagikan melalui


SOUNDEX (T-SQL)

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

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

Konvensi sintaks transact-SQL

Sintaks

SOUNDEX ( character_expression )  

Argumen

character_expression
Adalah ekspresi alfanumerik dari data karakter. character_expression bisa berupa konstanta, variabel, atau kolom.

Jenis Kembalian

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.

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.

  • Timbunan yang berisi kolom komputasi persisten 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 yang dipertahankan yang ditentukan dengan SOUNDEX tidak dapat dikueri hingga 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 set hasilnya. 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 set hasilnya. 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 set hasilnya. Berlaku untuk kolajek Latin1_General.

2             

Lihat Juga

PERBEDAAN (Transact-SQL)
Fungsi String (Transact-SQL)
UBAH Tingkat Kompatibilitas DATABASE (Transact-SQL)