Solved

Fuzzy logic in SQL

Posted on 2013-01-21
8
2,436 Views
Last Modified: 2016-02-11
WonkinlastyearnoGuitarLotsfloorlotsonly      
WonkinlastyearnoGuitarLots
Hi experts, I need to calculte the match percentage of these two, is there a way to do it? I have heard about fuzzy logic but have no clue as to how to do it, please help
0
Comment
Question by:sqlcurious
8 Comments
 
LVL 75

Expert Comment

by:Anthony Perkins
ID: 38803545
Hi experts, I need to calculte the match percentage of these two, is there a way to do it?
You cannot do that with T-SQL, you will have to resort to writing a CLR function to accomplish that.
0
 
LVL 27

Expert Comment

by:tliotta
ID: 38803832
What do those names reference? I.e., what is the meaning of the data and what is the data definition?

Tom
0
 
LVL 5

Expert Comment

by:RehanYousaf
ID: 38805128
Please provide with sample data and logic you want to use
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:sqlcurious
ID: 38806386
Please look at the attached sample data, and I have the logic in place to figure out the exact matches but I  want the logic to see if there are any close matches in terms of percentage -
For ex: DescrCode 1 and 2 has exact match Description1 and Description2 , DescCode 3 - 6 match > 50% , 7 and 8 less than 50% , this is just tentative percentages but can be more definitive.
Please let me know if you need more info, thanks
sample-data.txt
0
 

Author Comment

by:sqlcurious
ID: 38806397
this is the correct sample file, pls ignore previous one, thanks
sample-data.txt
0
 
LVL 6

Accepted Solution

by:
liija earned 500 total points
ID: 38806751
Could be done with SQL - but might become pretty complex code.
The easiest way is to use SQL Server Integration Services. There's a component that you might use on this, Fuzzy Lookup.

Here's a decent step-by-step guide - even if you have never used SSIS before:
http://oakdome.com/programming/SSIS_FuzzyLookup.php
0
 

Author Closing Comment

by:sqlcurious
ID: 38807527
thanks!
0
 
LVL 5

Expert Comment

by:RehanYousaf
ID: 38807578
Well there are different ways of doing it e.g

1. As  acperkins said, you can use CLR function to accomplish and the example is
http://anastasiosyal.com/POST/2009/01/11/18.ASPX?

2. As liija said, use SSIS package to do the job

3. If you have SQL Server 2008 R2 then a another option is to install Master Data Services
http://msdn.microsoft.com/en-us/library/ee633742(v=sql.105).aspx

sample code will be something like
DECLARE 
	@Name VARCHAR(100), 
	@Name2 VARCHAR(100)

SET @Name = 'rehan yousaf'
SET @Name2 = 'rayhaan usuf'

SELECT 
	@Name AS [@Name], 
	@Name2 AS [@Name2],
    MDS.mdq.Similarity(@Name, @Name2, 0, 0.85, 0) AS Levenshtein,
    MDS.mdq.Similarity(@Name, @Name2, 1, 0.85, 0) AS Jaccard,
    MDS.mdq.Similarity(@Name, @Name2, 2, 0.85, 0) AS JaroWinkler,
    MDS.mdq.Similarity(@Name, @Name2, 3, 0.85, 0) AS LongestCommonSubsequence

Open in new window


I have also attached the screenshot for option 3 as well
FuzzyLogic01.JPG
0

Featured Post

Free Webinar: AWS Backup & DR

Join our upcoming webinar with experts from AWS, CloudBerry Lab, and the Town of Edgartown IT to discuss best practices for simplifying online backup management and cutting costs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this article we will get to know that how can we recover deleted data if it happens accidently. We really can recover deleted rows if we know the time when data is deleted by using the transaction log.
Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
Viewers will learn how the fundamental information of how to create a table.
Viewers will learn how to use the UPDATE and DELETE statements to change or remove existing data from their tables. Make a table: Update a specific column given a specific row using the UPDATE statement: Remove a set of values using the DELETE s…

756 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question