Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: Koncový bod analýzy SQL azure
SQL Database Azure SQL Database
2025 (17.x)
v Microsoft Fabric a Warehouse v databázi Microsoft
Fabric 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_DISTANCEje 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.