Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2870
  • Last Modified:

Fuzzy logic in SQL

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
sqlcurious
Asked:
sqlcurious
1 Solution
 
Anthony PerkinsCommented:
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
 
tliottaCommented:
What do those names reference? I.e., what is the meaning of the data and what is the data definition?

Tom
0
 
RehanYousafCommented:
Please provide with sample data and logic you want to use
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
sqlcuriousAuthor Commented:
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
 
sqlcuriousAuthor Commented:
this is the correct sample file, pls ignore previous one, thanks
sample-data.txt
0
 
liijaCommented:
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
 
sqlcuriousAuthor Commented:
thanks!
0
 
RehanYousafCommented:
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

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now