pratinjau EDIT_DISTANCE (Transact-SQL)

Berlaku untuk: Titik akhir analitik SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL di Microsoft Fabric dan Gudang dalam database Microsoft FabricSQL di Microsoft Fabric

Note

Sebagai fitur pratinjau, teknologi yang tersaji dalam artikel ini tunduk pada Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Menghitung jarak edit antara dua string, yaitu jumlah minimum insertion, deletion, substitusi, dan transposisi yang diperlukan untuk mengubah satu string menjadi string lainnya.

Note

  • EDIT_DISTANCE sedang dalam pratinjau.
  • EDIT_DISTANCEtersedia di SQL Server 2025 (17.x).
  • EDIT_DISTANCEtersedia di Azure SQL Managed Instance dengan kebijakan pembaruanSQL Server 2025 atau Always-up-to-date.

Syntax

EDIT_DISTANCE (
    character_expression
    , character_expression [ , maximum_distance ]
)

Arguments

character_expression

Ekspresi alfanumerik data karakter. character_expression bisa berupa konstanta, variabel, atau kolom. Ekspresi karakter tidak boleh berjenis varchar(max) atau nvarchar(max).

maximum_distance

Nilai opsional yang menentukan jarak edit maksimum yang akan dihitung. maximum_distance adalah bilangan bulat. Ketika maximum_distance lebih besar atau sama dengan 0, fungsi mungkin berhenti memproses setelah menentukan jarak edit melebihi nilai yang ditentukan.

Jika jarak edit aktual kurang dari atau sama dengan maximum_distance, fungsi mengembalikan jarak sebenarnya. Jika tidak, fungsi akan mengembalikan maximum_distance + 1.

Jika maximum_distance tidak ditentukan, atau negatif, fungsi akan mengembalikan jarak edit yang sebenarnya. Jika maximum_distance adalah NULL, fungsi mengembalikan NULL.

Mengembalikan nilai

int

Fungsi ini mengimplementasikan algoritma Damerau-Levenshtein (Optimal String Alignment) untuk mengembalikan jarak antara dua character_expressions, atau nilai maximum_distance jika lebih kecil.

Jika salah satu input adalah NULL maka fungsi mengembalikan NULL nilai.

Remarks

Jika jarak sebenarnya lebih dari maximum_distance, maka fungsi mengembalikan maximum_distance + 1.

Examples

A. Hitung jarak edit antara dua kata

Contoh berikut membandingkan dua kata dan mengembalikan EDIT_DISTANCE() nilai sebagai kolom, bernama Distance.

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

Returns:

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

B. Hitung jarak edit antara dua kata yang dibatasi oleh nilai maksimum

Contoh berikut membandingkan dua kata dan mengembalikan EDIT_DISTANCE() nilai terbatas hingga maksimum.

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

Berikut adalah kumpulan hasilnya.

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

Untuk contoh lebih lanjut, lihat contoh EDIT_DISTANCE di tinjauan pencocokan string Fuzzy.