anteprima di EDIT_DISTANCE (Transact-SQL)

Si applica a: Endpoint di analisi SQL di Sql Server 2025 (17.x) del database SQL diAzurein Microsoft Fabric e warehouse neldatabase SQL di Microsoft Fabric in Microsoft Fabric

Note

In quanto funzionalità di anteprima, la tecnologia presentata in questo articolo è soggetta alle condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure.

Calcola la distanza di modifica tra due stringhe, che è il numero minimo di inserimenti, cancellazioni, sostituzioni e trasposizioni necessarie per trasformare una stringa nell'altra.

Note

  • EDIT_DISTANCE è in anteprima.
  • EDIT_DISTANCEè disponibile in SQL Server 2025 (17.x).
  • EDIT_DISTANCEè disponibile in Istanza gestita di SQL di Azure con i criteri di aggiornamento di SQL Server 2025 o Always-up-to-date.

Syntax

EDIT_DISTANCE (
    character_expression
    , character_expression [ , maximum_distance ]
)

Arguments

character_expression

Espressione alfanumerica dei dati di tipo carattere. character_expression può essere una costante, una variabile o una colonna. L'espressione del carattere non può essere di tipo varchar(max) o nvarchar(max).

maximum_distance

Un valore opzionale che specifica la distanza massima di modifica da calcolare. maximum_distance è un intero. Quando maximum_distance è maggiore o uguale a 0, la funzione potrebbe interrompere l'elaborazione una volta che determina che la distanza di modifica supera il valore specificato.

Se la distanza di modifica effettiva è inferiore o uguale a maximum_distance, la funzione restituisce la distanza effettiva. Altrimenti, la funzione restituisce maximum_distance + 1.

Se maximum_distance non è specificato, o se è negativo, la funzione restituisce la distanza effettiva di modifica. Se maximum_distance è NULL, la funzione restituisce NULL.

Valore restituito

int

Questa funzione implementa l'algoritmo Damerau-Levenshtein (Allineamento Ottimale delle Stringhe) per restituire la distanza tra i due character_expressions, o maximum_distance valore se è minore.

Se uno degli input è NULL , la funzione restituisce un NULL valore.

Remarks

Se la distanza effettiva è maggiore di maximum_distance, allora la funzione restituisce maximum_distance + 1.

Esempi

A. Calcola la distanza di modifica tra due parole

Nell'esempio seguente vengono confrontate due parole e viene restituito il EDIT_DISTANCE() valore come colonna denominata Distance.

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

Returns:

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

B. Calcola la distanza di modifica tra due parole limitate da un valore massimo

Il seguente esempio confronta due parole e restituisce il EDIT_DISTANCE() limitato a un valore massimo.

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

Il set di risultati è il seguente.

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

Per altri esempi, vedi l'esempio EDIT_DISTANCE nella panoramica Fuzzy string matching (corrispondenza fuzzy).