visualização EDIT_DISTANCE (Transact-SQL)

Aplica-se a: SQL Server 2025 (17.x) Banco de Dados SQL do AzurePonto de extremidade de análise deSQL da Instância Gerenciada de SQL do Azureno Microsoft Fabric e Warehouse noBanco de Dados SQL do Microsoft Fabric no Microsoft Fabric

Note

Como uma versão prévia do recurso, a tecnologia apresentada neste artigo está sujeita aos Termos de uso complementares para versões prévias 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 versão prévia.
  • EDIT_DISTANCEestá disponível no SQL Server 2025 (17.x).
  • EDIT_DISTANCEestá disponível na Instância Gerenciada de SQL do Azure com a política de atualização do SQL 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 caractere. character_expression pode ser uma constante, variável ou coluna. A expressão do caractere 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 ser calculada. 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 retorna a distância real. Caso contrário, a função retorna maximum_distance + 1.

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

Valor de retorno

int

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

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

Remarks

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

Exemplos

A. Calcule 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. Calcule a distância de edição entre duas palavras limitadas por um valor máximo

O exemplo a seguir compara duas palavras e retorna 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);

Veja a seguir o conjunto de resultados.

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

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