我当前的SQL查询是:
Select
A.CFCIF#, B.CIFNO, B.SNAME, A.CFSNME
From dbo.tbl_CIF_Master A
Left Join dbo.tbl_Loan_Master B
On A.CFCIF# = B.CIFNO
Where
B.[STATUS] not in (2,8)
--and CONTAINS (A.CFSNME or FORMSOF (THESAURUS, B.SNAME)) --doesn't work.
I'm not an admin so I can't design thesaurus mappings
and B.SNAME LIKE '%' + A.CFSNME + '%' -- works but no results which can't
be accurate这运行得很好,但正如我在使用LIKE时注意到的那样,没有发现任何差异。如前所述,使用同义词库的行被注释掉了……我在两个“name”字段SNAME和CFSNME中发现的细微差异的一个例子是微妙的差异,比如在LLC前缺少逗号或Robert缩写为Rob。
发布于 2017-09-08 01:04:17
考虑到您正在寻找的差异的不确定性(您已经实现的严格的子字符串匹配无法捕捉到这些差异),您可以考虑计算列之间的相似性度量,然后确定该相似性度量的适当临界值,以识别相同但存在细微差异的字符串。有关您可能要使用的相似性度量,请参阅A better similarity ranking algorithm for variable length strings。
https://stackoverflow.com/questions/46101391
复制相似问题