Funzioni di ricerca di stringhe fuzzy
Il linguaggio SQL di Netezza Performance Server supporta due funzioni di ricerca di stringhe fuzzy: Levenshtein Edit Distance e Damerau-Levenshtein Edit Distance.
La ricerca di stringhe fuzzy è una forma di corrispondenza approssimativa tra stringhe basata su tecniche o algoritmi definiti. Queste funzioni confrontano due stringhe per mostrare quanto siano simili o diverse. Queste funzioni supportano solo i tipi di dati VARCHAR e CHAR (codificaLatin9 ).
Distanza di modifica di Levenshtein
le_dst(<str_expr_1>, <str_expr_2>)
Il valore di ritorno è un numero interoint4) che indica la differenza tra le due stringhe di input calcolata in base all'algoritmo Levenshtein edit distance. Il valore 0 indica che le stringhe sono equivalenti senza alcuna modifica. L'algoritmo calcola il numero di modifiche necessarie per trasformare la prima stringa nella seconda. Le stringhe sono sensibili alle maiuscole e alle minuscole. Una modifica è un cambiamento come l'aggiunta, la cancellazione, il cambio di caso o la sostituzione di un singolo carattere.
le_dst('sow','show')
restituisce il valore 1 (l'aggiunta del carattere h).le_dst('hello','Hollow')
restituisce un valore di 3 (la sostituzione di e con o, la capitalizzazione di H e l'aggiunta di w).
select le_dst('Smith','SMYTH')
restituisce un valore di 4 (tre cambi di lettere maiuscole e la sostituzione delle lettere da i a Y).select le_dst(upper('Smith'),'SMYTH')
restituisce un valore di 1 (la sostituzione della lettera da I a Y).
Distanza di modifica di Damerau-Levenshtein
dle_dst (<str_expr_1>, <str_expr_2>)
- Una modifica è un cambiamento come l'aggiunta, la cancellazione, il cambio di caso o la sostituzione di un singolo carattere.
- Il valore di ritorno è un numero interoint4) che indica il numero di modifiche necessarie per trasformare la prima stringa nella seconda stringa.
- Il valore 0 indica che le stringhe sono equivalenti senza alcuna modifica.
- I confronti tra le stringhe sono sensibili alle maiuscole e alle minuscole.
le_dst('two','tow')
restituisce un valore di 2 (cambiando la w in una o e la o in una w).dle_dst('two','tow')
restituisce il valore 1 (trasposizione di w e o).