- Catégories :
Fonctions de chaîne et fonctions binaires (Correspondance/Comparaison)
EDITDISTANCE¶
Calcule la distance de Levenshtein entre deux chaînes d’entrée. C’est le nombre d’insertions, de suppressions ou de substitutions d’un seul caractère nécessaires pour convertir une chaîne en une autre.
Note
Contrairement à d’autres mesures (par exemple, Damerau-Levenshtein), les transpositions de caractères ne sont pas prises en compte.
Syntaxe¶
EDITDISTANCE( <expr1> , <expr2> )
Notes sur l’utilisation¶
Le temps d’exécution de la fonction EDITDISTANCE est proportionnel au produit des longueurs des chaînes d’entrée.
Pour de meilleures performances, Snowflake recommande d’utiliser des chaînes d’entrée ne dépassant pas 4 096 caractères.
Détails du classement¶
No impact. In languages where the alphabet contains digraphs or trigraphs (such as « Dz » and « Dzs » in Hungarian), each character in each digraph and trigraph is treated as an independent character, not as part of a single multi-character letter.
Le résultat repose uniquement sur les caractères des chaînes, et non sur les spécifications de classement des chaînes.
Exemples¶
SELECT s, t, EDITDISTANCE(s, t), EDITDISTANCE(t, s) FROM ed;
----------------+-----------------+--------------------+--------------------+
s | t | editdistance(s, t) | editdistance(t, s) |
----------------+-----------------+--------------------+--------------------+
| | 0 | 0 |
Gute nacht | Ich weis nicht | 8 | 8 |
Ich weiß nicht | Ich wei? nicht | 1 | 1 |
Ich weiß nicht | Ich weiss nicht | 2 | 2 |
Ich weiß nicht | [NULL] | [NULL] | [NULL] |
Snowflake | Oracle | 7 | 7 |
święta | swieta | 2 | 2 |
[NULL] | | [NULL] | [NULL] |
[NULL] | [NULL] | [NULL] | [NULL] |
----------------+-----------------+--------------------+--------------------+