我当前的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。正如我所指出的那样,使用THESAURUS的线路被注释掉......我将在两个名称中找到细微差别的一个例子。字段SNAME& CFSNME会有微妙的差异,例如在LLC或Robert缩写为Rob之前缺少逗号。
答案 0 :(得分:0)
鉴于您正在寻找的差异的不确定性(您实施的严格子字符串匹配将无法捕获),您可以考虑计算列之间的相似性度量,然后确定该相似性的适当临界值用于标识相同但但存在细微差别的字符串的度量标准。有关您可能要使用的相似性指标,请参阅A better similarity ranking algorithm for variable length strings。