カテゴリ:

文字列とバイナリ関数 (マッチング/比較)

EDITDISTANCE

2つの入力文字列間のレーベンシュタイン距離を計算します。これは、ある文字列を別の文字列に変換するために必要な単一文字の挿入、削除、または置換の数です。

注釈

他のいくつかの指標(ダメラウ・レーベンシュタイン距離など)とは異なり、文字の転置は考慮されません。

構文

EDITDISTANCE( <expr1> , <expr2> )

使用上の注意

  • EDITDISTANCE 計算は高価になる可能性があります。実行時間は、入力の長さの積に比例します。

    その結果、入力の長さはそれぞれ4096文字に制限されます。

照合の詳細

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.

結果は、文字列の照合仕様ではなく、文字列内の文字のみに基づいています。

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]             |
----------------+-----------------+--------------------+--------------------+