Soundex adalah algoritma fonetik untuk mengindeks nama dengan suara, seperti yang diucapkan dalam bahasa Inggris. Ini dikembangkan dan dipatenkan pada tahun 1918 dan 1922.
Salah satu fungsi yang tersedia di SQL Server adalah SOUNDEX()
fungsi, yang mengembalikan kode Soundex untuk string tertentu.
Sintaks
Sintaksnya seperti ini:
SOUNDEX ( character_expression )
Dimana character_expression
adalah kata atau string yang Anda inginkan untuk kode Soundex. Ini bisa berupa konstanta, variabel, atau kolom.
SOUNDEX()
fungsi sensitif terhadap susunan, dan fungsi string dapat disarangkan.
Kode Soundex
Seperti disebutkan, SOUNDEX()
fungsi mengembalikan kode Soundex untuk string yang diberikan. Kode Soundex adalah kode empat karakter yang didasarkan pada bunyi senar saat diucapkan. Berikut ini contoh kode Soundex:
S600
Berikut cara membuat kode Soundex:
- Karakter pertama dari kode adalah karakter pertama dari string, diubah menjadi huruf besar. Jadi pada contoh di atas, kita tahu bahwa string dimulai dengan huruf S (baik huruf kecil atau 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 jika mereka adalah huruf pertama dari string.
- Nol ditambahkan di akhir jika perlu untuk menghasilkan kode empat karakter.
Contoh
Berikut ini contoh pengambilan string Soundex dari string:
SELECT SOUNDEX('Sure');
Hasil:
S600
Jadi kita bisa melihat bahwa kata Sure
memiliki kode Soundex S600
.
Contoh Dua Kata yang Berpasangan
Berikut adalah contoh di mana dua kata memiliki kode Soundex yang sama (karena terdengar sama):
SELECT SOUNDEX('Sure') AS Sure, SOUNDEX('Shore') AS Shore;
Hasil:
Sure Shore ---- ----- S600 S600
Berikut ini beberapa contoh pencocokan persis:
SELECT SOUNDEX('Dam') AS Dam, SOUNDEX('Damn') AS Damn, SOUNDEX('Too') AS Too, SOUNDEX('Two') AS Two;
Hasil:
Dam Damn Too Two ---- ---- ---- ---- D500 D500 T000 T000
Contoh Kata yang Tidak Cocok
Berikut adalah contoh di mana dua kata tidak terdengar sama, dan oleh karena itu, mereka memiliki kode Soundex yang berbeda:
SELECT SOUNDEX('Water') AS Water, SOUNDEX('Coffee') AS Coffee;
Hasil:
Water Coffee ----- ------ W360 C100
Kata dengan Ejaan Berbeda
Beberapa kata memiliki ejaan yang berbeda tergantung dari negara mana Anda berasal. Kata-kata tersebut akan memiliki kode Soundex yang sama:
SELECT SOUNDEX('Flavor') AS 'Flavor', SOUNDEX('Flavour') AS 'Flavour';
Hasil:
Flavor Flavour ------ ------- F416 F416
Suara Sama, Kode Soundex Berbeda
Terkadang, dua kata terdengar sama, tetapi memiliki kode Soundex yang berbeda. Alasan paling umum untuk ini adalah bahwa mereka mulai dengan huruf yang berbeda (satu menggunakan huruf diam). Seperti yang disebutkan, kode Soundex dimulai dengan huruf pertama dari string (diubah menjadi huruf besar). Oleh karena itu, jika Anda memiliki dua kata yang pengucapannya sama persis, tetapi diawali dengan huruf yang berbeda, keduanya akan memiliki kode Soundex yang berbeda.
Berikut beberapa contohnya:
SELECT SOUNDEX('Hole') AS 'Hole', SOUNDEX('Whole') AS 'Whole', SOUNDEX('Our') AS Our, SOUNDEX('Hour') AS Hour;
Hasil:
Hole Whole Our Hour ---- ----- ---- ---- H400 W400 O600 H600
Pasangan dalam contoh ini memiliki kode Soundex yang berbeda hanya karena huruf pertamanya berbeda.