Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:Конечная точка аналитики SQLServer 2025 (17.x) Базы
данных
SQL Azure в Microsoft Fabric и хранилище в
базе данных SQL Microsoft Fabric в Microsoft Fabric
Note
В отношении технологии (как предварительной версии функции), описанной в этой статье, действуют дополнительные условия использования предварительных версий Microsoft Azure.
Вычисляет расстояние редактирования между двумя строками, то есть минимальное количество вставок, удалений, подстановок и транспозиций, необходимых для преобразования одной строки в другую.
Note
-
EDIT_DISTANCEнаходится в предварительной версии. -
EDIT_DISTANCEдоступна в версии SQL Server 2025 (17.x). -
EDIT_DISTANCEдоступен в Управляемом экземпляре SQL Azure с политикой обновлениядаты sql Server 2025 или Always-up-to-date.
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 (Optimal String Alignment) для возврата расстояния между двумя character_expressions, или maximum_distance значения, если оно меньше.
Если любой из входных данных является NULL , функция возвращает NULL значение.
Remarks
Если фактическое расстояние больше maximum_distance, то функция возвращает maximum_distance + 1.
Примеры
А. Рассчитать расстояние редактирования между двумя словами
В следующем примере сравниваются два слова и возвращается 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 пример в обзоре Fuzzy string matching.