Zum Inhalt springen

Berechnet die Jaro-Winkler-Distanz zwischen zwei Zeichenfolgen. Sie wird häufig verwendet, um die Ähnlichkeit zwischen Zeichenfolgen zu messen, mit Werten von 0,0 (völlig unähnlich) bis 1,0 (identische Zeichenfolgen).

func.jaro_winkler(<string1>, <string2>)
func.jaro_winkler('databend', 'Databend')
┌───────────────────────────────────────────┐
│ func.jaro_winkler('databend', 'Databend') │
├───────────────────────────────────────────┤
│ 0.9166666666666666 │
└───────────────────────────────────────────┘
JARO_WINKLER(<string1>, <string2>)

Die Funktion JARO_WINKLER gibt einen FLOAT64-Wert zurück, der die Ähnlichkeit zwischen den beiden Eingabezeichenfolgen darstellt. Für den Rückgabewert gelten folgende Regeln:

  • Ähnlichkeitsbereich: Das Ergebnis reicht von 0,0 (völlig unähnlich) bis 1,0 (identisch).

    SELECT JARO_WINKLER('databend', 'Databend') AS similarity;
    ┌────────────────────┐
    │ similarity │
    ├────────────────────┤
    │ 0.9166666666666666 │
    └────────────────────┘
    SELECT JARO_WINKLER('databend', 'database') AS similarity;
    ┌────────────┐
    │ similarity │
    ├────────────┤
    │ 0.9 │
    └────────────┘
  • Behandlung von NULL: Ist string1 oder string2 NULL, ist das Ergebnis NULL.

    SELECT JARO_WINKLER('databend', NULL) AS similarity;
    ┌────────────┐
    │ similarity │
    ├────────────┤
    │ NULL │
    └────────────┘
  • Leere Zeichenfolgen:

    • Der Vergleich zweier leerer Zeichenfolgen ergibt 1,0.
    SELECT JARO_WINKLER('', '') AS similarity;
    ┌────────────┐
    │ similarity │
    ├────────────┤
    │ 1 │
    └────────────┘
    • Der Vergleich einer leeren Zeichenfolge mit einer nicht leeren Zeichenfolge ergibt 0,0.
    SELECT JARO_WINKLER('databend', '') AS similarity;
    ┌────────────┐
    │ similarity │
    ├────────────┤
    │ 0 │
    └────────────┘