EDIT_DISTANCE (Transact-SQL) プレビュー

適用対象:SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceMicrosoft Fabric の Microsoft Fabric と Warehouse の SQL 分析エンドポイントMicrosoft Fabric のSQL データベース

Note

この記事で紹介しているテクノロジはプレビュー機能であり、「Microsoft Azure プレビューの追加利用規約」に従うことを条件として提供されます。

2つの文字列間の 編集距離 を計算します。これは、1つの文字列をもう1つの文字列に変換するために必要な挿入、削除、置換、転置の最小回数です。

Note

  • EDIT_DISTANCE はプレビュー段階です。
  • EDIT_DISTANCESQL Server 2025(17.x)で利用可能です。
  • EDIT_DISTANCE は、SQL Server 2025 または Always-up-to-date更新ポリシーを使用して、Azure SQL Managed Instance で使用できます。

Syntax

EDIT_DISTANCE (
    character_expression
    , character_expression [ , maximum_distance ]
)

Arguments

character_expression

文字データの英数字式。 character_expression には定数、変数、または列を指定できます。 キャラクター表現は varchar(max)nvarchar(max)のタイプにはなりません。

maximum_distance

計算すべき最大編集距離を指定するオプションの値。 maximum_distance は整数です。 maximum_distance0以上の場合、編集距離が指定値を超えたと判断すると処理を停止することがあります。

実際の編集距離が maximum_distance以下であれば、関数は実際の距離を返します。 そうでなければ、関数は maximum_distance + 1を返します。

maximum_distanceが指定されていないか、ネガティブであれば、関数は実際の編集距離を返します。 maximum_distanceNULLであれば、関数はNULLを返します。

戻り値

int

この関数は Damerau-Levenshtein(最適文字列アラインメント)アルゴリズムを実装し、2つの character_expressions間の距離、または小さい場合は maximum_distance 値を返します。

入力のいずれかが NULL 場合、関数は NULL 値を返します。

Remarks

実際の距離が maximum_distanceより大きい場合、関数は maximum_distance + 1を返します。

例示

A. 2つの単語間の編集距離を計算します

次の例では、2 つの単語を比較し、 EDIT_DISTANCE() 値を Distance という名前の列として返します。

SELECT 'Colour' AS WordUK,
       'Color' AS WordUS,
       EDIT_DISTANCE('Colour', 'Color') AS Distance;

Returns:

WordUK WordUS Distance
------ ------ -----------
Colour Color  1

B. 最大値で制限された2語間の編集距離を計算します

以下の例は2つの単語を比較し、最大値に制限された EDIT_DISTANCE() を返します。

SELECT Source,
       Target,
       EDIT_DISTANCE(Source, Target) AS ActualDistance,
       EDIT_DISTANCE(Source, Target, 2) AS LimitedDistance
FROM (VALUES ('Chocolate', 'Sweets')) AS compare(Source, Target);

結果セットは次のとおりです。

Source    Target    ActualDistance LimitedDistance
--------- --------- -------------- ---------------
Chocolate Sweets    8              3

さらなる例については、ファジィ文字列マッチングの概要EDIT_DISTANCE例を参照してください。