字符串比较

时间:2010-08-30 15:15:12

标签: visual-studio-2008

我有一个表的数据库,我需要做一些比较工作,而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

2 个答案:

答案 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 + '%'