preview van EDIT_DISTANCE (Transact-SQL)

Van toepassing op: SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL Analytics-eindpunt in Microsoft Fabric en Warehouse in Microsoft FabricSQL Database in Microsoft Fabric SQL Database in Microsoft Fabric

Note

Omdat het om een preview-functie gaat, is de technologie die in dit artikel wordt behandeld onderhevig aan de Aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews.

Berekent de bewerkingsafstand tussen twee strings, wat het minimale aantal inserties, deletions, substituties en transposities is dat nodig is om de ene string in de andere te transformeren.

Note

  • EDIT_DISTANCE is in voorlopige versie.
  • EDIT_DISTANCEis beschikbaar in SQL Server 2025 (17.x).
  • EDIT_DISTANCEis beschikbaar in Azure SQL Managed Instance met het updatebeleid voor SQL Server 2025 of Always-up-to-date update.

Syntax

EDIT_DISTANCE (
    character_expression
    , character_expression [ , maximum_distance ]
)

Arguments

character_expression

Een alfanumerieke expressie van tekengegevens. character_expression kan een constante, variabele of kolom zijn. De karakterexpressie kan niet van het type varchar(max) of nvarchar(max) zijn.

maximum_distance

Een optionele waarde die de maximale bewerkingsafstand specificeert die berekend moet worden. maximum_distance is een geheel getal. Wanneer maximum_distance groter is dan of gelijk aan 0, kan de functie stoppen met verwerken zodra vastgesteld is dat de bewerkingsafstand de opgegeven waarde overschrijdt.

Als de werkelijke bewerkingsafstand kleiner is dan of gelijk aan maximum_distance, geeft de functie de werkelijke afstand terug. Anders geeft de functie maximum_distance + 1 terug.

Als maximum_distance niet is gespecificeerd, of als het negatief is, geeft de functie de werkelijke bewerkingsafstand terug. Als maximum_distance is NULL, geeft de functie .NULL

Retourwaarde

int

Deze functie implementeert het Damerau-Levenshtein (Optimal String Alignment) algoritme om de afstand tussen de twee character_expressions terug te geven, of maximum_distance waarde als die kleiner is.

Als een van de invoerwaarden is NULL , retourneert de functie een NULL waarde.

Remarks

Als de werkelijke afstand groter is dan maximum_distance, geeft de functie maximum_distance + 1 terug.

Voorbeelden

Eén. Bereken de bewerkingsafstand tussen twee woorden

In het volgende voorbeeld worden twee woorden vergeleken en wordt de waarde geretourneerd als een kolom met de EDIT_DISTANCE() naam Distance.

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

Returns:

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

B. Bereken de bewerkingsafstand tussen twee woorden die beperkt is door een maximale waarde

Het volgende voorbeeld vergelijkt twee woorden en geeft de EDIT_DISTANCE() beperkte terug tot een maximale waarde.

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 is het resultatenoverzicht.

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

Voor meer voorbeelden, zie het EDIT_DISTANCE voorbeeld in het overzicht van Fuzzy-stringmatching.