EDIT_DISTANCE (Transact-SQL) Preview

Platí pro: Koncový bod analýzy SQL azureSQL Database Azure SQL Database 2025 (17.x) v Microsoft Fabric a Warehouse v databázi MicrosoftFabric SQL v Microsoft Fabric

Note

Jako funkce ve verzi Preview platí, že technologie uvedená v tomto článku podléhá dodatečným podmínkám použití pro verze Microsoft Azure Preview.

Vypočítá editační vzdálenost mezi dvěma řetězci, což je minimální počet vložení, smazání, substitucí a transpozic potřebných k přeměně jednoho řetězce na druhý.

Note

  • EDIT_DISTANCE je ve verzi Preview.
  • EDIT_DISTANCEje dostupný v SQL Server 2025 (17.x).
  • EDIT_DISTANCEje k dispozici ve službě Azure SQL Managed Instance se zásadami aktualizaceSQL Serveru 2025 nebo Always-up-to-date.

Syntax

EDIT_DISTANCE (
    character_expression
    , character_expression [ , maximum_distance ]
)

Arguments

character_expression

Alfanumerický výraz dat znaků. character_expression může být konstanta, proměnná nebo sloupec. Výraz znaku nemůže být typu varchar(max) nebo nvarchar(max).

maximum_distance

Volitelná hodnota, která určuje maximální vzdálenost úprav k výpočtu. maximum_distance je celé číslo. Když je maximum_distance větší nebo rovno 0, funkce může ukončit zpracování, jakmile zjistí, že vzdálenost úprav překročí zadanou hodnotu.

Pokud je skutečná vzdálenost úpravy menší nebo rovna maximum_distance, funkce vrátí skutečnou vzdálenost. Jinak funkce vrací maximum_distance + 1.

Pokud maximum_distance není specifikováno, nebo pokud je záporná, funkce vrátí skutečnou vzdálenost úprav. Pokud maximum_distance je , NULLfunkce vrací NULL.

Návratová hodnota

int

Tato funkce implementuje algoritmus Damerau-Levenshtein (Optimal String Alignment), který vrací vzdálenost mezi dvěma character_expressions, nebo maximum_distance hodnotu, pokud je menší.

Pokud je NULL některý ze vstupů, vrátí NULL funkce hodnotu.

Remarks

Pokud je skutečná vzdálenost větší než maximum_distance, funkce vrací maximum_distance + 1.

Examples

A. Výpočet vzdálenosti úprav mezi dvěma slovy

Následující příklad porovnává dvě slova a vrátí EDIT_DISTANCE() hodnotu jako sloupec s názvem Distance.

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

Returns:

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

B. Výpočet vzdálenosti úprav mezi dvěma slovy omezenou maximální hodnotou

Následující příklad porovnává dvě slova a vrací limitované na EDIT_DISTANCE() maximální hodnotu.

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

Tady je soubor výsledků.

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

Pro více příkladů viz EDIT_DISTANCE příklad v přehledu fuzzy string matching.