EDIT_DISTANCE (Transact-SQL) önizlemesi

Şunlar için geçerlidir: SQL Server 2025 (17.x) Azure SQL Veritabanı Microsoft Fabric'teAzure SQL Yönetilen ÖrneğiSQL analiz uç noktası ve Microsoft Fabric'teki Microsoft FabricSQL veritabanındaki Ambar

Note

Önizleme özelliği olarak, bu makalede sunulan teknoloji Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları'na tabidir.

İki dizi arasındaki düzenleme mesafesini hesaplar; bu, bir diziyi diğerine dönüştürmek için gereken minimum ekleme, silme, ikame ve transpozisyon sayısıdır.

Note

  • EDIT_DISTANCE önizleme aşamasındadır.
  • EDIT_DISTANCESQL Server 2025 (17.x) sürümünde mevcuttur.
  • EDIT_DISTANCE , SQL Server 2025 veya Always-up-to-dategüncelleştirme ilkesiyle Azure SQL Yönetilen Örneği'nde kullanılabilir.

Syntax

EDIT_DISTANCE (
    character_expression
    , character_expression [ , maximum_distance ]
)

Arguments

character_expression

Karakter verilerinin alfasayısal ifadesi. character_expression sabit, değişken veya sütun olabilir. Karakter ifadesi varchar(max) veya nvarchar(max) tipinde olamaz.

maximum_distance

Hesaplanacak maksimum düzenleme mesafesini belirten isteğe bağlı bir değer. maximum_distance tam sayıdır. maximum_distance daha büyük veya 0eşit olduğunda, fonksiyon düzenleme mesafesinin belirlenen değeri aştığını belirlediğinde işlemeyi durdurabilir.

Gerçek düzenleme mesafesi maximum_distance'den az veya eşitse, fonksiyon gerçek mesafeyi döndürür. Aksi takdirde, fonksiyon maximum_distance + 1 döndürür.

Eğer maximum_distance belirtilmemişse veya negatif ise, fonksiyon gerçek düzenleme mesafesini döndürür. Eğer maximum_distance iseNULL, fonksiyon döndürer NULL.

Dönüş değeri

int

Bu fonksiyon, iki character_expressions arasındaki mesafeyi veya daha küçükse maximum_distance değerini döndürmek için Damerau-Levenshtein (Optimal String Alignment) algoritmasını uygular.

Girişlerden herhangi biri ise NULL işlev bir NULL değer döndürür.

Remarks

Gerçek mesafe maximum_distance'den büyükse, fonksiyon maximum_distance + 1 döndürür.

Örnekler

A. İki kelime arasındaki düzenleme mesafesini hesaplayın

Aşağıdaki örnek iki sözcüğü karşılaştırır ve değerini adlı EDIT_DISTANCE()bir sütun olarak döndürürDistance.

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

Returns:

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

B. İki kelime arasındaki düzenleme mesafesini hesaplayın, maksimum bir değerle sınırlanmıştır

Aşağıdaki örnek iki kelimeyi karşılaştırır ve sınırlıyı EDIT_DISTANCE() maksimum değere döndürür.

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

Sonuç kümesi aşağıdadır.

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

Daha fazla örnek için, Fuzzy dize eşleştirme genel bakışındakiEDIT_DISTANCE örneğine bakınız.