Soundex est un algorithme phonétique permettant d'indexer les noms par son, tel qu'il se prononce en anglais. Il a été développé et breveté en 1918 et 1922.
L'une des fonctions disponibles dans SQL Server est SOUNDEX()
fonction, qui renvoie le code Soundex pour une chaîne donnée.
Syntaxe
La syntaxe ressemble à ceci :
SOUNDEX ( character_expression )
Où character_expression
est le mot ou la chaîne pour laquelle vous voulez le code Soundex. Il peut s'agir d'une constante, d'une variable ou d'une colonne.
Le SOUNDEX()
la fonction est sensible au classement et les fonctions de chaîne peuvent être imbriquées.
Le code Soundex
Comme mentionné, le SOUNDEX()
La fonction renvoie le code Soundex pour la chaîne donnée. Le code Soundex est un code à quatre caractères basé sur le son de la chaîne lorsqu'elle est prononcée. Voici un exemple de code Soundex :
S600
Voici comment un code Soundex est construit :
- Le premier caractère du code est le premier caractère de la chaîne, converti en majuscule. Ainsi, dans l'exemple ci-dessus, nous savons que la chaîne commence par la lettre S (minuscule ou majuscule).
- Les deuxième à quatrième caractères du code sont des nombres qui représentent les lettres de l'expression.
- Les lettres A, E, I, O, U, H, W et Y sont ignorées sauf s'il s'agit de la première lettre de la chaîne.
- Des zéros sont ajoutés à la fin si nécessaire pour produire un code à quatre caractères.
Exemple
Voici un exemple de récupération de la chaîne Soundex à partir d'une chaîne :
SELECT SOUNDEX('Sure');
Résultat :
S600
Nous pouvons donc voir que le mot Sure
a un code Soundex de S600
.
Exemple de deux mots correspondants
Voici un exemple où deux mots partagent le même code Soundex (parce qu'ils se prononcent de la même manière) :
SELECT SOUNDEX('Sure') AS Sure, SOUNDEX('Shore') AS Shore;
Résultat :
Sure Shore ---- ----- S600 S600
Voici quelques exemples de correspondances plus exactes :
SELECT SOUNDEX('Dam') AS Dam, SOUNDEX('Damn') AS Damn, SOUNDEX('Too') AS Too, SOUNDEX('Two') AS Two;
Résultat :
Dam Damn Too Two ---- ---- ---- ---- D500 D500 T000 T000
Exemple de mots qui ne correspondent pas
Voici un exemple où deux mots ne se prononcent pas de la même manière et ont donc des codes Soundex différents :
SELECT SOUNDEX('Water') AS Water, SOUNDEX('Coffee') AS Coffee;
Résultat :
Water Coffee ----- ------ W360 C100
Mots avec des orthographes différentes
Certains mots ont une orthographe différente selon le pays d'où vous venez. Ces mots partageront le même code Soundex :
SELECT SOUNDEX('Flavor') AS 'Flavor', SOUNDEX('Flavour') AS 'Flavour';
Résultat :
Flavor Flavour ------ ------- F416 F416
Même son, code Soundex différent
Parfois, deux mots ont le même son, mais ils ont des codes Soundex différents. La raison la plus courante est qu'ils commencent par une lettre différente (on utilise une lettre muette). Comme mentionné, le code Soundex commence par la première lettre de la chaîne (convertie en majuscule). Par conséquent, si vous avez deux mots qui se prononcent exactement de la même manière, mais qui commencent par une lettre différente, ils auront un code Soundex différent.
Voici quelques exemples :
SELECT SOUNDEX('Hole') AS 'Hole', SOUNDEX('Whole') AS 'Whole', SOUNDEX('Our') AS Our, SOUNDEX('Hour') AS Hour;
Résultat :
Hole Whole Our Hour ---- ----- ---- ---- H400 W400 O600 H600
Les paires de cet exemple ont des codes Soundex différents uniquement parce que leur première lettre est différente.