Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

SOUNDEX (Transact-SQL)

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

S'applique à : SQL Server (SQL Server 2008 jusqu'à la version actuelle), Base de données SQL Windows Azure (version initiale jusqu'à la version actuelle).

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

SOUNDEX ( character_expression )

character_expression

Expression alphanumérique de données caractères. character_expression peut être une constante, une variable ou une colonne.

SOUNDEX convertit une chaîne alphanumérique en un code à quatre caractères basé sur la façon dont la chaîne est énoncée. 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.

Les codes SOUNDEX de chaînes individuelles peuvent être comparés pour voir comment sont énoncées les chaînes similaires. La fonction DIFFERENCE effectue un SOUNDEX sur deux chaînes, et retourne un entier qui représente le degré de similitude des codes SOUNDEX pour ces chaînes.

SOUNDEX respecte le classement. Il est possible d'imbriquer des fonctions de chaîne.

Dans les versions antérieures de SQL Server, la fonction SOUNDEX appliquait un sous-ensemble des règles 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 pouvez être amené à reconstruire les index, les segments de mémoire ou les contraintes CHECK qui utilisent la fonction SOUNDEX.

  • Un segment de mémoire qui contient une colonne calculée persistante définie avec SOUNDEX ne peut pas être interrogé tant qu'il n'a pas été reconstruit en exécutant l'instruction ALTER TABLE <table> REBUILD.

  • Les contraintes CHECK définies avec SOUNDEX sont désactivées lors de la mise à niveau. Pour activer la contrainte, exécutez l'instruction 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 qu'ils n'ont pas été reconstruits en exécutant l'instruction ALTER INDEX ALL ON <object> REBUILD.

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. Valide pour un classement Latin1_General.

----- ----- 
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. Valide pour un classement Latin1_General.

----------- 
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. Valide pour un classement Latin1_General.

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

(1 row(s) affected)
Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft