使用SQL

时间:2018-12-19 12:07:19

标签: sql-server pattern-matching string-matching similarity soundex

最早需要帮助的人!

我有与我们交易的发货人姓名的重复记录...我想搜索输入错误的或在系统中输入错误的类似发货人姓名。

例如参数:ABC交易者

我需要返回的查询:

 1. ABC   , karachi , pakistan 
 2. ABCA  , karachi , Pakistan 
 3. ABCA trader,karachi, Pakistan 
 4. AABC trd, karachi , pakistan

我想编写返回与输入数据非常相似的名称的查询。

这是示例查询假设数据集:

 SELECT ROW_NUMBER() OVER(ORDER BY ii.Consignor_Name ASC) AS rn,
       ii.ConsignorName     AS cn,
       ii.ConsignorAddress  AS ca,
       rc.CountryName       AS cc

FROM   Index AS ii WITH(NOLOCK)
       INNER JOIN Countries AS rc WITH (NOLOCK)
            ON  ii.Consignor_CountryName = rc.CountryID
WHERE  YEAR(ii.EntryDate) > 2017
       AND ii.ConsignorName IS NOT NULL
GROUP BY
       ii.ConsignorName,
       ii.ConsignorAddress,
       rc.CountryName
ORDER BY
       ii.ConsignorName ASC,

我建议的逻辑:在SQL中使用Soundex功能,但是soundex有局限性...

enter image description here

来源:http://www.basistech.com/whitepapers/the-name-matching-you-need-EN.pdf

但是这种方法只在短文本中包含4到5个单词的字符串中的单词...

还有其他使用SQL预测准确数据的方法吗?一种执行模式匹配?

另一个输出类似于我要检查交易者的交易

0 个答案:

没有答案