【发布时间】:2016-02-29 19:01:42
【问题描述】:
我正在尝试在数据库中搜索一些重复记录,这些重复记录是由最终用户输入的。由于它们是由最终用户(可能是不同的人)输入的,因此记录略有不同。我唯一可以搜索的是公司名称,正如您可能已经猜到的那样,它的措辞可能会有所不同。示例:
Id Code Name
1 A001 Company A LTD
2 A002 Company A Limited
3 A003 Co. A LTD
所有 3 条记录都是针对同一家公司的,只是不同的人可能输入了这些记录,因此他们对公司名称的措辞不同。所以我想做的是从支持的角度更容易,我想为有重复的公司找到这些记录,然后删除它,但你可以想象它很难搜索,因为名称可能不同。
我正在考虑使用 Like 语句获取公司名称的第一个字母和第二个单词。
Where Name Like 'C%A%'
但肯定有更好的方法来做到这一点。
【问题讨论】:
-
现在不在我的机器上 - 看看模糊匹配
-
专门找SOUNDEX和DIFFERENCE()
-
我们多年来一直遇到这些问题。我们甚至在用户输入客户姓名时向他们推荐姓名 - 他们仍会输入重复项。 SoundEx 不能很好地处理“Ltd”和“Limited”等差异。唯一的办法就是教育用户!
-
@navigator 虽然这是真的,但教育用户需要时间,运营商显然现在需要做点什么。您可以创建一个查找表或类似的东西来处理已知的缩写,然后将 soundex 应用于它。
标签: sql sql-server