Funktionen für Suche nach grob übereinstimmenden Zeichenfolgen
Die SQL-Sprache des Netezza Performance Server unterstützt zwei Fuzzy-String-Suchfunktionen: Levenshtein Edit Distance und Damerau-Levenshtein Edit Distance.
Eine Suche nach grob übereinstimmenden Zeichenfolgen stellt einen näherungsweise berechneten Zeichenfolgeabgleich bereit, der auf definierten Verfahren und Algorithmen basiert. Diese Funktionen vergleichen zwei Zeichenfolgen, um zu zeigen, wie ähnlich oder unterschiedlich sie sind. Diese Funktionen unterstützen nur die VARCHAR- und CHAR-Datentypen (Latin9-Codierung).
Levenshtein-Editierdistanz
le_dst(<str_expr_1>, <str_expr_2>)
Der Rückgabewert ist eine Ganzzahl (int4), die angibt, wie unterschiedlich die beiden Eingabezeichenfolgen nach dem Levenshtein-Editierdistanzalgorithmus berechnet werden. Der Wert 0 gibt an, dass die Zeichenfolgen ohne Änderungen äquivalent sind. Der Algorithmus berechnet die Anzahl Änderungen, die zum Ändern der ersten Zeichenfolge in die zweite Zeichenfolge erforderlich sind. Für die Zeichenfolgen muss die Groß-/Kleinschreibung beachtet werden. Eine Änderung kann das Hinzufügen, Löschen, Ändern der Groß-/Kleinschreibung oder das Ersetzen eines einzelnen Zeichens sein.
le_dst('sow','show')
gibt den Wert 1 zurück (die Addition des Zeichens h).le_dst('hello','Hollow')
ergibt den Wert 3 (Ersetzung von e durch o, Großschreibung von H und Hinzufügung von w).
select le_dst('Smith','SMYTH')
ergibt den Wert 4 (drei Großbuchstabenwechsel und die Ersetzung von i durch Y).select le_dst(upper('Smith'),'SMYTH')
liefert den Wert 1 (die Ersetzung von I durch Y).
Damerau-Levenshtein-Editierdistanz
dle_dst (<str_expr_1>, <str_expr_2>)
- Eine Änderung kann das Hinzufügen, Löschen, Ändern der Groß-/Kleinschreibung oder das Ersetzen eines einzelnen Zeichens sein.
- Der Rückgabewert ist eine Ganzzahl (int4), die die Anzahl Änderungen angibt, die zum Ändern der ersten Zeichenfolge in die zweite Zeichenfolge erforderlich sind.
- Der Wert 0 gibt an, dass die Zeichenfolgen ohne Änderungen äquivalent sind.
- Für die Zeichenfolgevergleiche muss die Groß-/Kleinschreibung beachtet werden.
le_dst('two','tow')
ergibt den Wert 2 (wobei das w zu einem o und das o zu einem w wird).dle_dst('two','tow')
gibt den Wert 1 zurück (Transposition von w und o).