2010-08-30 232 views
0

我有一個表,我需要做一些比較工作的數據庫和sql服務器是有限的做手段進行字符串比較。我把所有的數據放入列表中,並想到使用string.compare或string.contains,但似乎沒有正常工作。也許有人對如何做到這一點有更好的建議。這是大量的數據,我需要能夠進行一些匹配,以避免手動檢查每個字符串。這裏是示例數據和代碼;字符串比較

string 1 
adage.com via Drudge Report 
Airdrie & Coatbridge Advertiser 
Silicon 
A NOVO SA 

string 2 
adage.com 
Airdrie and Coatbridge Advertiser 
Silicon.com 
The A Novo 

現在這些是典型的例子,應該匹配,但我不知道如何得到這個工作。

粗糙的代碼實現:

For i As Integer = 0 To list1.Count - 1 
      For j As Integer = 0 To list2.Count - 1 
       If list1.Item(i).Contains(list2.Item(j)) Then 
        outfile.WriteLine("found match") 

       End If 
      Next 
     Next 

回答

1

如果我理解你的要求,你想匹配,如果任一A是B的子串,或反之亦然。所以你不需要:

If list1.Item(i).Contains(list2.Item(j)) OR list2.Item(j).Contains(list1.Item(i)) 

以上將做一個區分大小寫的比較。如果你想有一個區分大小寫的比較,那麼你可以做這樣的事情:

If list1.Item(i).ToLower().Contains(list2.Item(j).ToLower()) OR 
    list2.Item(j).ToLower().Contains(list1.Item(i).ToLower()) 
+0

感謝您的回覆。我必須關注案件嗎?它會在字母大小寫中檢測到差異嗎? – vbNewbie 2010-08-30 15:20:33

+0

@vbNewBie - 查看我的最新編輯。 – dcp 2010-08-30 15:22:38

0

你會想在你的SQL使用WHERE string1 LIKE '%' + string2 + '%'