Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
SQL Analytics-slutpunkt i Microsoft Fabric och Warehouse i Microsoft Fabric
SQL Database i Microsoft Fabric
Note
Som en förhandsgranskningsfunktion omfattas tekniken som presenteras i den här artikeln av kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure.
Beräknar redigeringsavståndet mellan två strängar, vilket är det minsta antalet insättningar, raderingar, substitutioner och transpositioner som krävs för att omvandla en sträng till en annan.
Note
Syntax
EDIT_DISTANCE (
character_expression
, character_expression [ , maximum_distance ]
)
Arguments
character_expression
Ett alfanumeriskt uttryck för teckendata. character_expression kan vara en konstant, variabel eller kolumn. Karaktärsuttrycket kan inte vara av typen varchar(max) eller nvarchar(max).
maximum_distance
Ett valfritt värde som specificerar det maximala redigeringsavståndet att beräkna.
maximum_distance är ett heltal. När maximum_distance är större än eller lika med 0, kan funktionen sluta bearbeta när den fastställer att redigeringsavståndet överstiger det angivna värdet.
Om det faktiska redigeringsavståndet är mindre än eller lika med maximum_distance, returnerar funktionen det faktiska avståndet. Annars returnerar funktionen maximum_distance + 1.
Om maximum_distance inte är specificerat, eller om det är negativt, returnerar funktionen det faktiska redigeringsavståndet. Om maximum_distance är NULL, returnerar NULLfunktionen .
Returvärde
int
Denna funktion implementerar Damerau-Levenshtein-algoritmen (Optimal String Alignment) för att returnera avståndet mellan de två character_expressions, eller maximum_distance värde om det är mindre.
Om någon av indata är NULL returnerar funktionen ett NULL värde.
Remarks
Om det faktiska avståndet är större än maximum_distance returnerar funktionen maximum_distance + 1.
Examples
A. Beräkna redigeringsavstånd mellan två ord
I följande exempel jämförs två ord och värdet returneras EDIT_DISTANCE() som en kolumn med namnet Distance.
SELECT 'Colour' AS WordUK,
'Color' AS WordUS,
EDIT_DISTANCE('Colour', 'Color') AS Distance;
Returns:
WordUK WordUS Distance
------ ------ -----------
Colour Color 1
B. Beräkna redigeringsavstånd mellan två ord begränsat av ett maximalt värde
Följande exempel jämför två ord och returnerar den EDIT_DISTANCE() begränsade till ett maximalt värde.
SELECT Source,
Target,
EDIT_DISTANCE(Source, Target) AS ActualDistance,
EDIT_DISTANCE(Source, Target, 2) AS LimitedDistance
FROM (VALUES ('Chocolate', 'Sweets')) AS compare(Source, Target);
Här är resultatet.
Source Target ActualDistance LimitedDistance
--------- --------- -------------- ---------------
Chocolate Sweets 8 3
För fler exempel, se det EDIT_DISTANCE exemplet i översikten över Fuzzy-strängmatchning.