我有一个表的数据库,我需要做一些比较工作,而sql server仅限于进行字符串比较的方法。我将所有数据放入列表并考虑使用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
答案 0 :(得分: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())
答案 1 :(得分:0)
您希望在SQL中使用WHERE string1 LIKE '%' + string2 + '%'
。