IBM PureData System for Analytics, Version 7.1

Fonctions de recherche de chaînes correspondantes

Le langage IBM® Netezza SQL prend en charge deux fonctions de recherche de chaînes correspondantes : la distance d'édition de Levenshtein et la distance d'édition de Damerau-Levenshtein.

Une recherche de chaîne correspondante est une forme de correspondance approximative des chaînes à partir de techniques ou d'algorithmes définis. Ces fonctions comparent deux chaînes pour en montrer les similitudes ou les différences. Ces fonctions ne prennent en charge que les types de données VARCHAR et CHAR (codage Latin9).

Distance d'édition de Levenshtein

Syntaxe SQL :
le_dst (<expr_chaîne_1>, <expr_chaîne_2>)

La valeur renvoyée est un entier (int4) qui indique en quoi les méthodes de calcul des deux chaînes en entrée sont différentes conformément à l'algorithme de distance d'édition de Levenshtein. La valeur 0 indique que les chaînes sont équivalentes sans aucune modification. L'algorithme calcule le nombre de modifications à apporter à une chaîne pour la remplacer par une autre chaîne. Les chaînes sont sensibles à la casse. Une modification est un changement tel que l'ajout, la suppression, la substitution d'un seul caractère ou encore la modification de sa casse.

Par exemple :
  • le_dst('sow','show') renvoie la valeur 1 (ajout du caractère h).
  • le_dst('hello','Hollow') renvoie la valeur 3 (substitution du e par o, mise en majuscule du H et ajout de w).
Pour ignorer les différences de casse, utilisez la fonction upper ou lower afin de modifier la casse des chaînes avant la comparaison. Par exemple :
  • select le_dst('Smith','SMYTH') renvoie la valeur 4 (trois remplacements de minuscules par des majuscules et la substitution de la lettre i par la lettre y).
  • select le_dst(upper('Smith'),'SMYTH') renvoie la valeur 1 (substitution du I par un Y).

Distance d'édition de Damerau-Levenshtein

Syntaxe SQL :
dle_dst (<expr_chaîne_1>, <expr_chaîne_2>)
La valeur renvoyée indique en quoi les méthodes de calcul des deux chaînes en entrée sont différentes conformément à l'algorithme de distance d'édition de Damerau-Levenshtein. Tout comme l'algorithme de Levenshtein :
  • Une modification est un changement tel que l'ajout, la suppression, la substitution d'un seul caractère ou encore la modification de sa casse.
  • La valeur renvoyée est un entier (int4) qui indique le nombre de modifications requises pour remplacer la première chaîne par la seconde.
  • La valeur 0 indique que les chaînes sont équivalentes sans aucune modification.
  • Les comparaisons de chaînes sont sensibles à la casse.
Toutefois, dans l'algorithme de Damerau-Levenshtein, la transposition des caractères voisins compte comme une même modification et non pas deux. Par exemple :
  • le_dst('two','tow') renvoie la valeur 2 (remplacement du w par un o et du o par un w).
  • dle_dst('two','tow') renvoie la valeur 1 (transposition du w et du o).


Feedback | Copyright IBM Corporation 2014 | Last updated: 2014-02-28