SOUNDEX (Transact-SQL)
S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL analytics endpoint in Microsoft FabricWarehouse in Microsoft Fabric
Retourne un code à quatre caractères (SOUNDEX
) pour évaluer la similarité de deux chaînes.
Conventions de la syntaxe Transact-SQL
Syntaxe
SOUNDEX ( character_expression )
Arguments
expression_caractère
Expression alphanumérique de données caractères. character_expression peut être une constante, une variable ou une colonne.
Types de retour
varchar
Notes
SOUNDEX
convertit une chaîne alphanumérique en code à quatre caractères basé sur la façon dont la chaîne sonne lorsqu’elle est parlée en anglais. Le premier caractère du code est le premier caractère de character_expression, converti en majuscules. Les deuxième et quatrième caractères de ce code sont des chiffres qui représentent des lettres dans 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. Les zéros sont ajoutés à la fin si nécessaire pour produire un code à quatre caractères. Pour plus d’informations sur le code SOUNDEX
, consultez Le système d’indexation Soundex.
SOUNDEX
codes provenant de différentes chaînes peuvent être comparés pour voir comment les chaînes sonnent de la même façon lorsqu’elles sont parlées. La fonction
SOUNDEX
respecte le classement. Il est possible d'imbriquer des fonctions de chaîne.
Compatibilité SOUNDEX
Dans les versions précédentes de SQL Server, la fonction SOUNDEX
a appliqué un sous-ensemble des règles de SOUNDEX
. Lorsque le niveau de compatibilité de la base de données est 110 ou supérieur, SQL Server applique un ensemble de règles plus complet.
Après la mise à niveau vers le niveau de compatibilité 110 ou supérieur, vous devrez peut-être reconstruire les index, les segments de mémoire ou les contraintes CHECK
qui utilisent la fonction SOUNDEX
.
Un tas qui contient une colonne calculée persistante définie avec
SOUNDEX
ne peut pas être interrogé tant que le tas n’est pas reconstruit en exécutant l’instruction suivante :ALTER TABLE <table> REBUILD;
CHECK
contraintes définies avecSOUNDEX
sont désactivées lors de la mise à niveau. Pour activer la contrainte, exécutez l’instruction suivante :ALTER TABLE <table> WITH CHECK CHECK CONSTRAINT ALL;
Les index (y compris les vues indexées) qui contiennent une colonne calculée persistante définie avec
SOUNDEX
ne peuvent pas être interrogés tant que l’index n’est pas reconstruit en exécutant l’instruction suivante :ALTER INDEX ALL ON <object> REBUILD;
Exemples
Un. Utiliser SOUNDEX
L’exemple suivant montre la fonction SOUNDEX
et la fonction DIFFERENCE
associée. Dans le premier exemple, les valeurs standard SOUNDEX
sont retournées pour toutes les consonnes. Retourner la SOUNDEX
pour Smith
et Smythe
retourne le même résultat SOUNDEX
, car toutes les voyelles, la lettre y
, les lettres doublées et la lettre h
, ne sont pas incluses.
SELECT SOUNDEX('Smith'),
SOUNDEX('Smythe');
Voici le jeu de résultats. Valide pour un classement Latin1_General
.
S530 S530
B. Utiliser LA DIFFÉRENCE
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.
SELECT DIFFERENCE('Smithers', 'Smythers');
GO
Voici le jeu de résultats. Valide pour un classement Latin1_General
.
4
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 le jeu de résultats. Valide pour un classement Latin1_General
.
2