Anteckning
Å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) Förhandsversion 
Azure SQL Database
Azure SQL Managed Instance
Förhandsversion av SQL-databas för Microsoft Fabric
Använd fuzzy, eller ungefärlig, strängmatchning för att kontrollera om två strängar är liknande och beräkna skillnaden mellan två strängar. Använd den här funktionen för att identifiera strängar som kan vara olika på grund av teckenskada. Korruptionsorsaker kan vara stavfel, transponerade tecken, saknade tecken eller förkortningar. Fuzzy-strängmatchning använder algoritmer för att identifiera liknande ljudsträngar.
Note
- Fuzzy-strängmatchning är för närvarande i förhandsversion.
- SQL Server-stöd för fuzzy-strängmatchning som introducerades i SQL Server 2025 (17.x) Preview.
- Fuzzy-strängmatchning är tillgängligt i Azure SQL Managed Instance med SQL Server 2025- eller alltid uppdaterad uppdateringsprincipen.
Fuzzy-funktioner
| Function | Description | 
|---|---|
| EDIT_DISTANCE | Beräknar antalet infogningar, borttagningar, ersättningar och införlivanden som krävs för att transformera en sträng till en annan. | 
| EDIT_DISTANCE_SIMILARITY | Beräknar ett likhetsvärde som sträcker sig från 0 (anger ingen matchning) till 100 (som anger fullständig matchning). | 
| JARO_WINKLER_DISTANCE | Beräknar redigeringsavståndet mellan två strängar som ger företräde åt strängar som matchar från början för en angivet prefixlängd. | 
| JARO_WINKLER_SIMILARITY | Beräknar ett likhetsvärde som sträcker sig från 0 (anger ingen matchning) till 100 (som anger fullständig matchning). | 
Note
För närvarande följer inte funktionerna jämförelsesemantiken som definieras av sorteringsinställningar, till exempel skiftlägeskänslighet och andra sorteringsspecifika regler. När stödet för sorteringsregler har implementerats återspeglar funktionernas utdata dessa semantik och kan ändras i enlighet med detta.
Examples
I följande exempel visas matchningsfunktionerna för fuzzy-strängar.
Exempeltabell
Innan du kan köra exempelfrågor skapar och fyller du i en exempeltabell.
Om du vill skapa och fylla i exempeltabellen ansluter du till en icke-produktionsanvändardatabas och kör följande skript:
-- 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
Exempel 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
Exempel 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
Exempel 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
Exempel 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
Exempelfråga med alla funktioner
Följande fråga visar alla funktioner för reguljära uttryck som för närvarande är tillgängliga.
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
Städa upp
När du har använt exempeldata tar du bort exempeltabellen.
IF OBJECT_ID('dbo.WordPairs', 'U') IS NOT NULL
BEGIN
    DROP TABLE dbo.WordPairs;
END