我在SQL Server中的表有一些如下所示的条目。
2934046 Kellogg’s Share Your Breakfast 74672 2407522 Kellogg?s Share Your Breakfast ACTIVE 2015-09-01 9999-12-31
2934046 Kellogg?s Share Your Breakfast 74672 2407522 Kellogg?s Share Your Breakfast ACTIVE 2015-09-01 9999-12-31
另一个例子可能是
2939508 UOL Ação Social 81534 1527484 UOL Ac?o Social ACTIVE 2015-09-01 9999-12-31
2939508 UOL Ac?o Social 81534 1527484 UOL Ac?o Social ACTIVE 2015-09-01 9999-12-31
可以看出,除了第二个条目中的问号字符外,两个条目都相同。即使我做了像
这样的事情SELECT DISTINCT * from my_table
没用。我必须想办法根据特殊字符删除这类重复条目。我的经理说带有问号的条目基本上是坏数据,我应该删除它们。有谁知道怎么做?
答案 0 :(得分:0)
您可以实现damerau-levenshtein算法,该算法评估clr项目中两个字符串的相似程度,并将其用于t-sql。
您可以试验数据以找到正确的阈值,以便接受两个字符串作为重复项。
可以在此处找到算法实现的c#示例:
答案 1 :(得分:0)
今年我在数据加载活动中面临同样的问题,但我的经理向我提示使用SSIS模糊分组转换来查找相同的记录。请创建小型SSIS包,添加数据流任务。内部数据流任务添加(源+模糊分组+目的地)。
访问 - 添加模糊组变换识别重复项 https://msdn.microsoft.com/en-us/library/jj819770(v=sql.120).aspx