EDIT_DISTANCE (Transact-SQL) előzetes verzió

A következőkre vonatkozik: SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL Analytics-végpont a Microsoft Fabricben és a Microsoft Fabric SQL Database-ben a Microsoft FabricSQL Database-ben

Note

Előzetes verziójú funkcióként a cikkben bemutatott technológia a Microsoft Azure előzetes verziójának kiegészítő használati feltételeire vonatkozik.

Kiszámítja a két húr közötti szerkesztési távolságot , ami a minimális számú beillesztés, törlés, helyettesítés és transzpozíció szükséges, hogy az egyik húr a másikba alakuljon.

Note

  • EDIT_DISTANCE előzetes verzióban érhető el.
  • EDIT_DISTANCEelérhető az SQL Server 2025 (17.x) verzióban.
  • EDIT_DISTANCE a felügyelt Azure SQL-példányban az SQL Server 2025 vagy az Always-up-todátumfrissítésiszabályzattal érhető el.

Syntax

EDIT_DISTANCE (
    character_expression
    , character_expression [ , maximum_distance ]
)

Arguments

character_expression

Karakteradatok alfanumerikus kifejezése. character_expression lehet állandó, változó vagy oszlop. A karakterkifejezés nem lehet varchar(max) vagy nvarchar(max) típusú.

maximum_distance

Egy opcionális érték, amely meghatározza a maximális szerkesztési távolságot, amit ki kell számolni. maximum_distance egy egész szám. Ha maximum_distance nagyobb, mint vagy egyenlő 0, a függvény megállhat a feldolgozás, miután megállapítja, hogy a szerkesztési távolság meghaladja a megadott értéket.

Ha a tényleges szerkesztési távolság kisebb, mint maximum_distance, akkor a függvény visszaadja a tényleges távolságot. Ellenkező esetben a függvény maximum_distance + 1 ad.

Ha maximum_distance nincs megadva, vagy ha negatív, akkor a függvény visszaadja a tényleges szerkesztési távolságot. Ha maximum_distance , NULLakkor a függvény visszaadja NULL.

Visszaadott érték

int

Ez a függvény a Damerau-Levenshtein (Optimális String Alignment) algoritmust valósítja meg, hogy visszaadja a két character_expressions közötti távolságot, vagy ha az kisebb, maximum_distance értéket adja vissza.

Ha a bemenetek bármelyike, NULL akkor a függvény egy NULL értéket ad vissza.

Remarks

Ha a tényleges távolság nagyobb, mint maximum_distance, akkor a függvény maximum_distance + 1 ad.

Példák

A. Számold ki a szerkesztési távolságot két szó között

Az alábbi példa két szót hasonlít össze, és az EDIT_DISTANCE() értéket oszlopként adja vissza.Distance

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

Returns:

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

B. Kiszámoljuk a szerkesztési távolságot két szó között, amelyet egy maximális érték korlátoz

A következő példa két szót hasonlít össze, és a EDIT_DISTANCE() limitált maximális értéket adja vissza.

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

Itt van az eredmények összessége.

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

További példákért lásd a EDIT_DISTANCE példát a Fuzzy string matching áttekintésben.