Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2025 (17.x) Preview
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric Preview
Gebruik fuzzy of bij benadering overeenkomende tekenreeksen om te controleren of twee tekenreeksen vergelijkbaar zijn en het verschil tussen twee tekenreeksen te berekenen. Gebruik deze mogelijkheid om tekenreeksen te identificeren die mogelijk verschillen vanwege tekenbeschadiging. Oorzaken van corruptie kunnen spelfouten, verwisselde tekens, ontbrekende tekens of afkortingen zijn. Fuzzy tekenreekskoppeling maakt gebruik van algoritmen om vergelijkbare klinkende tekenreeksen te detecteren.
Note
- Fuzzy tekenreekskoppeling is momenteel beschikbaar als preview-versie.
- SQL Server-ondersteuning voor fuzzy tekenreekskoppeling die is geïntroduceerd in SQL Server 2025 (17.x) Preview.
- Fuzzy string-matching is beschikbaar in Azure SQL Managed Instance met het SQL Server 2025 of het Always-up-to-dateupdatebeleid.
Fuzzy functies
| Function | Description |
|---|---|
| EDIT_DISTANCE | Berekent het aantal invoegingen, verwijderingen, vervangingen en omzettingen die nodig zijn om de ene tekenreeks naar de andere te transformeren. |
| EDIT_DISTANCE_SIMILARITY | Berekent een overeenkomstwaarde tussen 0 (die geen overeenkomst aangeeft) tot 100 (wat een volledige overeenkomst aangeeft). |
| JARO_WINKLER_DISTANCE | Berekent de bewerkingsafstand tussen twee tekenreeksen die voorkeur geven aan tekenreeksen die vanaf het begin overeenkomen voor een ingestelde lengte van het voorvoegsel. |
| JARO_WINKLER_SIMILARITY | Berekent een overeenkomstwaarde tussen 0 (die geen overeenkomst aangeeft) tot 100 (wat een volledige overeenkomst aangeeft). |
Note
Momenteel voldoen de functies niet aan de vergelijkingssemantiek die is gedefinieerd door sorteringsinstellingen, zoals hoofdlettergevoeligheid en andere sorteringsspecifieke regels. Zodra ondersteuning voor sorteringsregels is geïmplementeerd, weerspiegelt de uitvoer van de functies deze semantiek en kan deze dienovereenkomstig worden gewijzigd.
Examples
De volgende voorbeelden laten de fuzzy tekenreekskoppelingsfuncties zien.
Voorbeeldtabel
Voordat u voorbeeldquery's kunt uitvoeren, maakt en vult u een voorbeeldtabel.
Als u de voorbeeldtabel wilt maken en vullen, maakt u verbinding met een niet-productiegebruikersdatabase en voert u het volgende script uit:
-- 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
Voorbeeld van 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
Voorbeeld van 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
Voorbeeld 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
Voorbeeld 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
Voorbeeldquery met alle functies
In de volgende query ziet u alle reguliere expressiefuncties die momenteel beschikbaar zijn.
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
Schoonmaken
Nadat u klaar bent met het gebruik van de voorbeeldgegevens, verwijdert u de voorbeeldtabel.
IF OBJECT_ID('dbo.WordPairs', 'U') IS NOT NULL
BEGIN
DROP TABLE dbo.WordPairs;
END