Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
Gunakan pencocokan string fuzzy, atau mendekati, untuk memeriksa apakah dua string serupa, dan untuk menghitung perbedaan antara kedua string tersebut. Gunakan kemampuan ini untuk mengidentifikasi string yang mungkin berbeda karena kerusakan karakter. Kerusakan mencakup kesalahan ejaan, karakter yang ditransposisikan, karakter yang hilang, atau singkatan. Pencocokan string fuzzy menggunakan algoritma untuk mendeteksi string yang terdengar serupa.
Note
Pencocokan string fuzzy saat ini dalam pratinjau untuk SQL Server 2025 (17.x) dan memerlukan pengaktifan konfigurasi lingkup database fitur pratinjau.
Pencocokan string fuzzy tersedia di Azure SQL Managed Instance dengan kebijakan pembaruanSQL Server 2025 atau Always-up-to-date.
Fungsi fuzzy
| Function | Description |
|---|---|
| EDIT_DISTANCE | Menghitung jumlah penyisipan, penghapusan, substitusi, dan transposisi yang diperlukan untuk mengubah satu string ke string lainnya. |
| EDIT_DISTANCE_SIMILARITY | Menghitung nilai kesamaan mulai dari 0 (menunjukkan tidak ada kecocokan) hingga 100 (menunjukkan kecocokan penuh). |
| JARO_WINKLER_DISTANCE | Menghitung jarak edit antara dua string yang memberikan preferensi ke string yang cocok dari awal untuk panjang awalan yang ditetapkan. |
| JARO_WINKLER_SIMILARITY | Menghitung nilai kesamaan mulai dari 0 (menunjukkan tidak ada kecocokan) hingga 100 (menunjukkan kecocokan penuh). |
Note
Saat ini, fungsi tidak mematuhi semantik perbandingan yang ditentukan oleh pengaturan kolase, seperti ketidakpekaan kasus dan aturan khusus kolase lainnya. Setelah dukungan untuk aturan kolase diterapkan, output fungsi akan mencerminkan semantik ini dan mungkin berubah sesuai.
Examples
Contoh berikut menunjukkan fungsi pencocokan string fuzzy.
Contoh tabel
Sebelum Anda dapat menjalankan contoh kueri, buat dan isi tabel contoh.
Untuk membuat dan mengisi tabel contoh, sambungkan ke database pengguna non-produksi, dan jalankan skrip berikut:
-- Step 1: Create the table
CREATE TABLE WordPairs
(
WordID INT IDENTITY (1, 1) PRIMARY KEY, -- Auto-incrementing ID
WordUK NVARCHAR (50), -- UK English word
WordUS NVARCHAR (50) -- US English word
);
-- Step 2: Insert the data
INSERT INTO WordPairs (WordUK, WordUS)
VALUES ('Colour', 'Color'),
('Flavour', 'Flavor'),
('Centre', 'Center'),
('Theatre', 'Theater'),
('Organise', 'Organize'),
('Analyse', 'Analyze'),
('Catalogue', 'Catalog'),
('Programme', 'Program'),
('Metre', 'Meter'),
('Honour', 'Honor'),
('Neighbour', 'Neighbor'),
('Travelling', 'Traveling'),
('Grey', 'Gray'),
('Defence', 'Defense'),
('Practise', 'Practice'), -- Verb form in UK
('Practice', 'Practice'), -- Noun form in both
('Aluminium', 'Aluminum'),
('Cheque', 'Check'); -- Bank cheque vs. check
Contoh EDIT_DISTANCE
SELECT WordUK,
WordUS,
EDIT_DISTANCE(WordUK, WordUS) AS Distance
FROM WordPairs
WHERE EDIT_DISTANCE(WordUK, WordUS) <= 2
ORDER BY Distance ASC;
Returns:
WordUK WordUS Distance
------------------------------ ------------------------------ -----------
Practice Practice 0
Aluminium Aluminum 1
Honour Honor 1
Neighbour Neighbor 1
Travelling Traveling 1
Grey Gray 1
Defence Defense 1
Practise Practice 1
Colour Color 1
Flavour Flavor 1
Organise Organize 1
Analyse Analyze 1
Catalogue Catalog 2
Programme Program 2
Metre Meter 2
Centre Center 2
Theatre Theater 2
Contoh EDIT_DISTANCE_SIMILARITY
SELECT WordUK,
WordUS,
EDIT_DISTANCE_SIMILARITY(WordUK, WordUS) AS Similarity
FROM WordPairs
WHERE EDIT_DISTANCE_SIMILARITY(WordUK, WordUS) >= 75
ORDER BY Similarity DESC;
Returns:
WordUK WordUS Similarity
------------------------------ ------------------------------ -----------
Practice Practice 100
Travelling Traveling 90
Aluminium Aluminum 89
Neighbour Neighbor 89
Organise Organize 88
Practise Practice 88
Defence Defense 86
Analyse Analyze 86
Flavour Flavor 86
Colour Color 83
Honour Honor 83
Catalogue Catalog 78
Programme Program 78
Grey Gray 75
Contoh JARO_WINKLER_DISTANCE
SELECT WordUK,
WordUS,
JARO_WINKLER_DISTANCE(WordUK, WordUS) AS Distance
FROM WordPairs
WHERE JARO_WINKLER_DISTANCE(WordUK, WordUS) <= .05
ORDER BY Distance ASC;
Returns:
WordUK WordUS Distance
------------------------------ ------------------------------ -----------
Practice Practice 0
Travelling Traveling 0.02
Neighbour Neighbor 0.0222222222222223
Aluminium Aluminum 0.0222222222222223
Theatre Theater 0.0285714285714286
Flavour Flavor 0.0285714285714286
Centre Center 0.0333333333333333
Colour Color 0.0333333333333333
Honour Honor 0.0333333333333333
Catalogue Catalog 0.0444444444444444
Programme Program 0.0444444444444444
Metre Meter 0.0466666666666667
Contoh JARO_WINKLER_SIMILARITY
SELECT WordUK,
WordUS,
JARO_WINKLER_SIMILARITY(WordUK, WordUS) AS Similarity
FROM WordPairs
WHERE JARO_WINKLER_SIMILARITY(WordUK, WordUS) > 90
ORDER BY Similarity DESC;
Returns:
WordUK WordUS Similarity
------------------------------ ------------------------------ -----------
Practice Practice 100
Aluminium Aluminum 98
Neighbour Neighbor 98
Travelling Traveling 98
Colour Color 97
Flavour Flavor 97
Centre Center 97
Theatre Theater 97
Honour Honor 97
Catalogue Catalog 96
Programme Program 96
Metre Meter 95
Organise Organize 95
Practise Practice 95
Analyse Analyze 94
Defence Defense 94
Contoh kueri dengan semua fungsi
Kueri berikut menunjukkan semua fungsi ekspresi reguler yang saat ini tersedia.
SELECT T.source_string,
T.target_string,
EDIT_DISTANCE(T.source_string, T.target_string) AS ED_Distance,
JARO_WINKLER_DISTANCE(T.source_string, T.target_string) AS JW_Distance,
EDIT_DISTANCE_SIMILARITY(T.source_string, T.target_string) AS ED_Similarity,
JARO_WINKLER_SIMILARITY(T.source_string, T.target_string) AS JW_Similarity
FROM (VALUES ('Black', 'Red'),
('Colour', 'Yellow'),
('Colour', 'Color'),
('Microsoft', 'Msft'),
('Regex', 'Regex')
) AS T(source_string, target_string);
Returns:
source_string target_string ED_Distance JW_Distance ED_Similarity JW_Similarity
-------------- -------------- -------------- --------------------- -------------- --------------
Black Red 5 1 0 0
Colour Yellow 5 0.444444444444445 17 55
Colour Color 1 0.0333333333333333 83 96
Microsoft Msft 5 0.491666666666667 44 50
Regex Regex 0 0 100 100
Pembersihan
Setelah Anda selesai menggunakan contoh data, hapus tabel contoh:
IF OBJECT_ID('dbo.WordPairs', 'U') IS NOT NULL
BEGIN
DROP TABLE dbo.WordPairs;
END