EDIT_DISTANCE (Transact-SQL) (versión preliminar)

Se aplica a: Sql Server 2025 (17.x) Punto de conexión de análisis sql de Azure SQL Database de Azure SQL DatabasedeAzure SQL Databaseen Microsoft Fabric y Almacenamiento en labase de datos SQL de Microsoft Fabric en Microsoft Fabric

Note

Como característica en versión preliminar, la tecnología que se presenta en este artículo está sujeta a los términos de uso complementarios para las versiones preliminares de Microsoft Azure.

Calcula la distancia de edición entre dos cadenas, que es el número mínimo de inserciones, eliminaciones, sustituciones y transposiciones necesarias para transformar una cadena en la otra.

Note

  • EDIT_DISTANCE está en versión preliminar.
  • EDIT_DISTANCEestá disponible en SQL Server 2025 (17.x).
  • EDIT_DISTANCEestá disponible en Instancia administrada de Azure SQL con la directiva de actualización de sql Server 2025 o Always-up-to-date.

Syntax

EDIT_DISTANCE (
    character_expression
    , character_expression [ , maximum_distance ]
)

Arguments

character_expression

Expresión alfanumérica de datos de caracteres. character_expression puede ser una constante, una variable o una columna. La expresión del carácter no puede ser del tipo varchar(máx) o nvarchar(máx).

maximum_distance

Un valor opcional que especifica la distancia máxima de edición a calcular. maximum_distance es un entero. Cuando maximum_distance es mayor o igual a 0, la función puede dejar de procesar una vez que determina que la distancia de edición supera el valor especificado.

Si la distancia real de edición es menor o igual a maximum_distance, la función devuelve la distancia real. De lo contrario, la función devuelve maximum_distance + 1.

Si maximum_distance no se especifica o es negativo, la función devuelve la distancia real de edición. Si maximum_distance es NULL, la función devuelve NULL.

Valor devuelto

int

Esta función implementa el algoritmo Damerau-Levenshtein (Alineación Óptima de Cadenas) para devolver la distancia entre los dos character_expressions, o maximum_distance valor si es menor.

Si alguna de las entradas es NULL , la función devuelve un NULL valor.

Remarks

Si la distancia real es mayor que maximum_distance, entonces la función devuelve maximum_distance + 1.

Examples

A. Calcular la distancia de edición entre dos palabras

En el ejemplo siguiente se comparan dos palabras y se devuelve el EDIT_DISTANCE() valor como una columna denominada Distance.

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

Returns:

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

B. Calcula la distancia de edición entre dos palabras limitadas por un valor máximo

El siguiente ejemplo compara dos palabras y devuelve el EDIT_DISTANCE() limitado a un 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);

Este es el conjunto de resultados.

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

Para más ejemplos, véase el ejemplo EDIT_DISTANCE en la visión general de coincidencias de cadenas difusas.