2016-09-11 34 views
1

我在SQL服務器中的表中有一些條目,如下所示。根據特殊字符區分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

真正回答這個問題是要避免含非ASCII字符的腐敗記錄。 – roeland

回答

0

您可以實現damerau-levenshtein算法,該算法可以評估兩個字符串在clr項目中的相似程度,並將其用於t-sql。

您可以試驗您的數據以找到適當的閾值,以便接受兩個字符串作爲重複。

算法實現的C#示例可以在這裏找到:

Damerau - Levenshtein Distance, adding a threshold