aperçu EDIT_DISTANCE (Transact-SQL)

S’applique à : Point de terminaison d’analyse SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL dans Microsoft Fabric et Warehouse dans labase de données Microsoft Fabric SQL dans Microsoft Fabric

Note

En tant que fonctionnalité en préversion, la technologie présentée dans cet article est soumise aux conditions d’utilisation supplémentaires des préversions de Microsoft Azure.

Calcule la distance d’édition entre deux chaînes, qui correspond au nombre minimum d’insertions, suppressions, substitutions et transpositions nécessaires pour transformer une chaîne en l’autre.

Note

  • EDIT_DISTANCE est en préversion.
  • EDIT_DISTANCEest disponible dans SQL Server 2025 (17.x).
  • EDIT_DISTANCEest disponible dans Azure SQL Managed Instance avec la stratégie de mise à jourSQL Server 2025 ou Always-up-to-date.

Syntax

EDIT_DISTANCE (
    character_expression
    , character_expression [ , maximum_distance ]
)

Arguments

character_expression

Expression alphanumérique des données de caractères. character_expression peut être une constante, une variable ou une colonne. L’expression du caractère ne peut pas être du type varchar(max) ou nvarchar(max).

maximum_distance

Une valeur optionnelle qui spécifie la distance maximale d’édition à calculer. maximum_distance est un entier. Lorsque maximum_distance est supérieur ou égal à 0, la fonction peut s’arrêter de traiter une fois qu’elle a déterminé que la distance d’édition dépasse la valeur spécifiée.

Si la distance de montage réelle est inférieure ou égale à maximum_distance, la fonction retourne la distance réelle. Sinon, la fonction renvoie maximum_distance + 1.

Si maximum_distance n’est pas spécifié, ou si c’est négatif, la fonction renvoie la distance réelle de montage. Si maximum_distance est NULL, la fonction retourne NULL.

Valeur retournée

int

Cette fonction implémente l’algorithme Damerau-Levenshtein (Alignement Optimal des Chaînes) pour retourner la distance entre les deux character_expressions, ou maximum_distance valeur si celle-ci est plus petite.

Si l’une des entrées est NULL alors, la fonction retourne une NULL valeur.

Remarks

Si la distance réelle est supérieure à maximum_distance, alors la fonction retourne maximum_distance + 1.

Examples

R : Calculer la distance d’édition entre deux mots

L’exemple suivant compare deux mots et retourne la valeur sous la EDIT_DISTANCE() forme d’une colonne nommée Distance.

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

Returns:

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

B. Calculer la distance d’édition entre deux mots limités par une valeur maximale

L’exemple suivant compare deux mots et renvoie le EDIT_DISTANCE() limité à une valeur maximale.

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

Voici l'ensemble des résultats.

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

Pour plus d’exemples, voir l’exemple EDIT_DISTANCE dans l’aperçu de la correspondance de chaînes floues.