SOUNDEX : Comparer des chaînes de caractères phonétiquement

Comment :

Langages disponibles : reporting, Maintain

La fonction SOUNDEX analyse une chaîne de caractères phonétiquement sans prise en compte de l'orthographe. Il convertit les chaînes de caractères à quatre codes de caractères. Le premier caractère doit être le premier caractère de la chaîne. Les trois derniers caractères représentent les trois prochains sons significatifs dans la chaîne source.

Pour effectuer une recherche phonétique, procédez comme suit :

  1. Utiliser SOUNDEX pour convertir les valeurs de données d'un champ à laquelle vous êtes à la recherche de codes phonétiques.
  2. Utiliser SOUNDEX pour convertir votre meilleur estimation d'une chaîne cible à un code phonétique. Rappelez-vous que l'orthographe de votre chaîne cible a besoin seulement d'être approximative, mais la première lettre doit être correcte.
  3. Utiliser les critères WHERE ou IF pour comparer les champs temporaires créés à l'étape 1 à ceux créés à l'étape 2.

Haut de page

x
Syntaxe : Comparer phonétiquement des chaînes de caractères
SOUNDEX(length, source_string, output)

où :

length

Alphanumérique

est le nombre de caractères dans source_string, ou un champ qui contient la longueur.Il peut être le nombre entouré par des guillemets simples, ou un champ contenant celui-ci. Le nombre doit être de 01 à 99, exprimée avec deux chiffres (par exemple '01 '); un nombre plus grand que 99 causes la fonction à renvoyer des astérisques (*) en sortie.

source_string

Alphanumérique

est la chaîne à analyser encadrée par des guillemets simples, ou un champ ou une variable contenant la chaîne de caractères.

output

Alphanumérique

est le champ qui contient le résultat, ou le format de la valeur de sortie entre guillemets simples.



Exemple : Comparer des chaînes de caractères phonétiquement

La requête suivante crée trois champs :

Le critière WHERE sélectionne le nom de famille correspondant à votre meilleure suggestion.

DEFINE FILE EMPLOYEE
PHON_NAME/A4 = SOUNDEX('15', LAST_NAME, PHON_NAME);
PHON_COY/A4 WITH LAST_NAME = SOUNDEX('15', 'MICOY', PHON_COY);
PHON_MATCH/A3 = IF PHON_NAME IS PHON_COY THEN 'YES' ELSE 'NO';
END
TABLE FILE EMPLOYEE
PRINT LAST_NAME
IF PHON_MATCH IS 'YES'
END

La sortie est :

LAST_NAME
---------
MCCOY

WebFOCUS