EDIT_DISTANCE (Transact-SQL) pré-visualização

Aplica-se a: SQL Server 2025 (17.x) Base de Dados SQL do Azure AzureSQL ManagedInstance SQL Analytics endpoint em Microsoft Fabric e Warehouse em Microsoft Fabric Basede dados SQL no Microsoft Fabric

Note

Como funcionalidade de pré-visualização, a tecnologia apresentada neste artigo está sujeita aos Termos de Utilização Suplementares para Pré-visualizações do Microsoft Azure.

Calcula a distância de edição entre duas cadeias, que é o número mínimo de inserções, deleções, substituições e transposições necessárias para transformar uma cadeia na outra.

Note

  • EDIT_DISTANCE está em pré-visualização.
  • EDIT_DISTANCEestá disponível no SQL Server 2025 (17.x).
  • EDIT_DISTANCEestá disponível na Instância Gerenciada SQL do Azure com a política de atualizaçãoSQL Server 2025 ou Always-up-to-date.

Syntax

EDIT_DISTANCE (
    character_expression
    , character_expression [ , maximum_distance ]
)

Arguments

character_expression

Uma expressão alfanumérica de dados de caracteres. character_expression pode ser uma constante, variável ou coluna. A expressão do carácter não pode ser do tipo varchar(max) ou nvarchar(max).

maximum_distance

Um valor opcional que especifica a distância máxima de edição a calcular. maximum_distance é um inteiro. Quando maximum_distance é maior ou igual a 0, a função pode parar de processar assim que determinar que a distância de edição excede o valor especificado.

Se a distância real de edição for menor ou igual a maximum_distance, a função devolve a distância real. Caso contrário, a função devolve maximum_distance + 1.

Se maximum_distance não for especificado, ou se for negativo, a função devolve a distância real de edição. Se maximum_distance for NULL, a função devolve NULL.

Valor de retorno

int

Esta função implementa o algoritmo Damerau-Levenshtein (Alinhamento Ótimo de Cordas) para devolver a distância entre as duas character_expressions, ou maximum_distance valor se este for menor.

Se qualquer uma das entradas for NULL , então a função retorna um NULL valor.

Remarks

Se a distância real for maior que maximum_distance, então a função devolve maximum_distance + 1.

Examples

A. Calcular a distância de edição entre duas palavras

O exemplo a seguir compara duas palavras e retorna o EDIT_DISTANCE() valor como uma coluna, chamada Distance.

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

Returns:

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

B. Calcular a distância de edição entre duas palavras limitadas por um valor máximo

O exemplo seguinte compara duas palavras e devolve o EDIT_DISTANCE() limitado a um valor máximo.

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

Aqui está o conjunto de resultados.

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

Para mais exemplos, veja o exemplo EDIT_DISTANCE na visão geral da correspondência de cadeias fuzzy.