SOUNDEX (Transact-SQL)

Retourne un code à quatre caractères (SOUNDEX) pour évaluer la similitude entre deux chaînes.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

SOUNDEX ( character_expression )

Arguments

  • character_expression
    Expression alphanumérique d'une donnée de type caractère (character). character_expression peut être une constante, une variable ou une colonne.

Types de retour

varchar

Notes

La fonction SOUNDEX convertit une chaîne de caractères alphanumériques en un code à quatre caractères pour trouver des mots ou des noms à consonance similaire. Le premier caractère du code est le premier caractère de character_expression tandis que les deuxième, troisième et quatrième caractères de ce code sont des chiffres. Les voyelles sont ignorées dans character_expression, à moins qu'il ne s'agisse de la première lettre de la chaîne. Il est possible d'imbriquer des fonctions de chaîne.

Exemples

L'exemple suivant illustre la fonction SOUNDEX et la fonction associée DIFFERENCE. Dans le premier exemple, les valeurs standard SOUNDEX sont retournées pour toutes les consonnes. La fonction SOUNDEX exécutée sur Smith et Smythe retourne le même résultat SOUNDEX parce que toutes les voyelles, la lettre « y », les lettres doubles et la lettre « h » ne sont pas comprises.

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

Voici l'ensemble des résultats.

----- ----- 
S530  S530  

(1 row(s) affected)

La fonction DIFFERENCE calcule la différence des résultats du modèle SOUNDEX. L'exemple suivant illustre deux chaînes de caractères qui ne diffèrent que par les voyelles. La différence retournée est 4, soit la plus petite différence possible.

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

Voici l'ensemble des résultats.

----------- 
4           

(1 row(s) affected)

Dans l'exemple suivant, les chaînes de caractères diffèrent par leurs consonnes ; la valeur retournée est donc 2, soit la différence la plus importante.

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

Voici l'ensemble des résultats.

----------- 
2           

(1 row(s) affected)

Voir aussi

Référence