適用対象:SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
Microsoft 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_distanceが0以上の場合、編集距離が指定値を超えたと判断すると処理を停止することがあります。
実際の編集距離が maximum_distance以下であれば、関数は実際の距離を返します。 そうでなければ、関数は maximum_distance + 1を返します。
maximum_distanceが指定されていないか、ネガティブであれば、関数は実際の編集距離を返します。
maximum_distanceがNULLであれば、関数は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例を参照してください。