EDIT_DISTANCE (Transact-SQL) Vorschau

Gilt für: SQL Server 2025 (17.x) Azure SQL-DatenbankAzure SQL Managed InstanceSQL SQL Analytics-Endpunkt in Microsoft Fabric und Warehouse in Microsoft FabricSQL-Datenbank in Microsoft Fabric in Microsoft Fabric

Note

Als Previewfunktion unterliegt die in diesem Artikel vorgestellte Technologie den zusätzlichen Nutzungsbedingungen für Microsoft Azure-Vorschauen.

Berechent die Bearbeitungsdistanz zwischen zwei Strings, also die minimale Anzahl an Einfügungen, Löschungen, Substitutionen und Transpositionen, die nötig sind, um einen String in einen anderen zu transformieren.

Note

  • EDIT_DISTANCE befindet sich in der Vorschau.
  • EDIT_DISTANCEist in SQL Server 2025 (17.x) verfügbar.
  • EDIT_DISTANCEist in azure SQL Managed Instance mit der SQL Server 2025- oder Always-up-to-Updaterichtlinie verfügbar.

Syntax

EDIT_DISTANCE (
    character_expression
    , character_expression [ , maximum_distance ]
)

Arguments

character_expression

Ein alphanumerischer Ausdruck von Zeichendaten. character_expression kann eine Konstante, Variable oder Spalte sein. Der Charakterausdruck kann nicht vom Typ varchar(max) oder nvarchar(max) sein.

maximum_distance

Ein optionaler Wert, der die maximale zu berechnende Bearbeitungsdistanz angibt. maximum_distance ist eine ganze Zahl. Wenn maximum_distance größer oder gleich ist , 0kann die Funktion die Verarbeitung stoppen, sobald festgestellt wird, dass der Bearbeitungsabstand den angegebenen Wert überschreitet.

Ist die tatsächliche Bearbeitungsdistanz kleiner oder gleich maximum_distance, gibt die Funktion die tatsächliche Distanz zurück. Andernfalls gibt die Funktion maximum_distance + 1 zurück.

Wenn maximum_distance nicht angegeben ist oder negativ ist, gibt die Funktion die tatsächliche Bearbeitungsdistanz zurück. Ist maximum_distance , NULLgibt die Funktion . zurück.NULL

Rückgabewert

int

Diese Funktion implementiert den Damerau-Levenshtein-Algorithmus (Optimal String Alignment), um den Abstand zwischen den beiden character_expressions zurückzugeben, oder maximum_distance Wert, falls dieser kleiner ist.

Wenn eine der Eingaben vorhanden ist NULL , gibt die Funktion einen NULL Wert zurück.

Remarks

Wenn der tatsächliche Abstand größer als maximum_distance ist, gibt die Funktion maximum_distance + 1 zurück.

Examples

A. Berechnen Sie den Bearbeitungsabstand zwischen zwei Wörtern

Im folgenden Beispiel werden zwei Wörter verglichen und der EDIT_DISTANCE() Wert als Spalte mit dem Namen zurückgegeben Distance.

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

Returns:

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

B. Berechnen Sie den Bearbeitungsabstand zwischen zwei Wörtern, begrenzt durch einen maximalen Wert

Das folgende Beispiel vergleicht zwei Wörter und gibt den begrenzten EDIT_DISTANCE() Wert auf einen maximalen Wert zurück.

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

Hier ist das Ergebnis.

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

Für weitere Beispiele siehe das EDIT_DISTANCE Beispiel in der Fuzzy-String-Matching Übersicht.