Udostępnij za pomocą


EDIT_DISTANCE (Transact-SQL) (wersja zapoznawcza)

Dotyczy: SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL Database w usłudze Microsoft Fabric

Note

Jako funkcja w wersji zapoznawczej technologia przedstawiona w tym artykule podlega dodatkowym warunkom użytkowania dla wersji zapoznawczych platformy Microsoft Azure.

Oblicza liczbę wstawiania, usuwania, podstawień i transpozycji potrzebnych do przekształcenia jednego ciągu na inny.

Note

  • EDIT_DISTANCE jest w wersji zapoznawczej.
  • EDIT_DISTANCE obecnie nie obsługuje transpozycji.
  • Wsparcie dla SQL Server wprowadzone EDIT_DISTANCE w SQL Server 2025 (17.x).
  • EDIT_DISTANCEjest dostępny w usłudze Azure SQL Managed Instance z zasadami aktualizacji zawszeup-toSQL Server 2025 lub Always-up-to.

Syntax

EDIT_DISTANCE (
    character_expression
    , character_expression [ , maximum_distance ]
)

Arguments

character_expression

Alfanumeryczne wyrażenie danych znaków. character_expression może być stałą, zmienną lub kolumną. Wyrażenie znaku nie może być typu varchar(max) ani nvarchar(max).

maximum_distance

Maksymalna odległość, którą należy obliczyć. maximum_distance jest liczbą całkowitą. Jeśli wartość większa niż lub równa zero, funkcja zwraca rzeczywistą wartość odległości lub wartość odległości większą niż maxiumum_distance . Jeśli rzeczywista odległość jest większa niż maximum_distance, funkcja może zwracać wartość większą lub równą maximum_distance. Jeśli parametr nie jest określony lub maximum_distance jest ujemny, funkcja zwraca rzeczywistą liczbę potrzebnych transformacji. Jeśli wartość ma wartość NULL, funkcja zwraca wartość NULL.

Wartość zwracana

int

Remarks

Ta funkcja implementuje algorytm Damerau-Levenshtein. Jeśli którykolwiek z danych wejściowych jest NULL , funkcja zwraca NULL wartość. W przeciwnym razie funkcja zwraca wartość całkowitą z zakresu od 0 do liczby przekształceń lub maximum_distance wartości.

Przykłady

Poniższy przykład porównuje dwa wyrazy i zwraca EDIT_DISTANCE() wartość jako kolumnę o nazwie Distance.

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

Returns:

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

Aby uzyskać dodatkowe przykłady, zobacz Przykład EDIT_DISTANCE().