Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server 2025 (17.x)
Azure SQL-Datenbank
Azure SQL Managed Instance
SQL SQL Analytics-Endpunkt in Microsoft Fabric und Warehouse in Microsoft Fabric
SQL-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
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.