适用于:Microsoft Fabric
SQL Microsoft 数据库中Microsoft Fabric
和 Warehouse 中的 Azure SQL 数据库 Azure SQL 数据库
Azure SQL 托管实例
SQL 分析终结点,SQL Server 2025 (17.x)
Note
作为预览版功能,本文中介绍的技术受制于 Microsoft Azure 预览版补充使用条款。
计算两个字符串之间的 编辑距离 ,即将一个字符串转换为另一个字符串所需的最少插入、删除、替换和换位次数。
Note
-
EDIT_DISTANCE处于预览状态。 -
EDIT_DISTANCE可在 SQL Server 2025(17.x)中使用。 -
EDIT_DISTANCE在具有 SQL Server 2025 或 Always-up-to-date更新策略的 Azure SQL 托管实例中可用。
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(最优字符串对齐)算法,返回两个 character_expressions之间的距离,或者如果距离较小则返回 maximum_distance 值。
如果任一输入是 NULL ,则该函数将返回一个 NULL 值。
Remarks
如果实际距离大于 maximum_distance,则函数返回 maximum_distance + 1。
例子
A. 计算两个单词之间的编辑距离
下面的示例比较两个单词,并将该值作为列返回 EDIT_DISTANCE() ,命名 Distance。
SELECT 'Colour' AS WordUK,
'Color' AS WordUS,
EDIT_DISTANCE('Colour', 'Color') AS Distance;
Returns:
WordUK WordUS Distance
------ ------ -----------
Colour Color 1
B. 计算两个单词之间的编辑距离,受最大值限制
以下示例比较两个词,并将极限值返回 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示例。