funzione word_diff()

La funzione " word_diff() individua il numero di modifiche necessarie per trasformare una stringa in un'altra stringa.

L'aggiunta, l'eliminazione, la sostituzione o il cambio di caso di un singolo carattere nella stringa contano come una modifica. La trasposizione di due caratteri adiacenti conta come due modifiche in tutti i casi tranne che nell'algoritmo di Damerau-Levenshtein, che conta la trasposizione come una singola modifica.

L'uso della funzione 'word_diff() con gli algoritmi Soundex o Double Metaphone ottiene lo stesso risultato della combinazione della funzione 'word_key() per convertire le stringhe nelle loro codifiche fonetiche e poi della funzione 'word_keys_diff() per confrontare tali codifiche. La funzione " word_diff() converte le stringhe nelle loro codifiche fonetiche e confronta tali codifiche.

Sintassi

La funzione " word_diff() ha la seguente sintassi:
int1 = word_diff(varchar word1, varchar word2 [, int algorithm]);

Il valore " word1 specifica la prima parola del confronto.

Il valore " word2 specifica la seconda parola nel confronto.

Il valore " algorithm è uno dei seguenti:
0
Soundex-Miracode.
1
Soundex semplificato.
2
Soundex-SQLServer.
3
Doppia metafora. Questa è l'impostazione predefinita.
10
Levenshtein.
11
Damerau-Levenshtein.

La funzione integrata di Netezza Performance Server 'le_dst() è equivalente all'utilizzo della funzione 'word_diff() con l'algoritmo Levenshtein. La funzione integrata di Netezza Performance Server 'dle_dst() è equivalente all'utilizzo della funzione 'word_diff() con l'algoritmo di Damerau-Levenshtein.

Risultati

La funzione restituisce un numero intero che indica la somiglianza o la differenza tra le due stringhe. Un valore pari a 0 indica che le stringhe sono uguali. I risultati variano a seconda dell'algoritmo scelto.

Esempio

Nell'esempio seguente, la funzione restituisce0perché gli algoritmi Soundex considerano solo la vocale iniziale, non le vocali successive. :
select word_diff('anderson','andrsn',0);
 WORD_DIFF
-----------
         0
(1 row)
Se l'algoritmo viene modificato in Damerau-Levenshtein, come nell'esempio seguente, la funzione restituisce2perché Damerau-Levenshtein tiene conto delle vocali e e o mancanti nella seconda stringa:
select word_diff('anderson','andrsn',11);
 WORD_DIFF
-----------
         2
(1 row)