比较两个字符串arraylists或列表

时间:2010-08-28 05:00:19

标签: .net sql comparison

我有两个SQL表,其中包含我想要比较的数据。表格具有以下结构:

id, title,url

我想按标题比较表格,如果字符串相似或相等,则通过将记录写入文件来记录。有人建议不要在SQL中复制数据并在.net中将其作为列表进行比较。

有关如何执行此操作的任何建议吗?

标题的典型示例:

表1 - KPTH Fox 44 via

表2 -KPTH Fox44

我尝试在带有通配符'%'的sql中使用LIKE但是他的唯一适用于这些类型的示例并且无法使用

ABC

MSabC

1 个答案:

答案 0 :(得分:2)

这样可以更容易在数据库中执行,然后返回匹配项的数据集。假设这两个表是相同的,并且您只匹配标题,您的SQL将如下所示:

SELECT [id], [title], [url]
FROM [Table1] t1
JOIN [Table2] t2 ON t1.[title] = t2.[title]

然后遍历结果集中的每个记录,并将所需的任何字段写入文件。

如果您只想坚持使用SQL,则可以运行查询,然后使用查询工具(例如Management Studio或其他内容)将outout保存到文件中。

编辑:根据“类似”要求,您可以使用SQL中的SOUNDEX命令来比较它们是否相似。 See MSDN了解有关SOUNDEX命令的更多信息。

编辑2:要添加有关您添加的要求的更多信息:在SQL中,这类似的要求可能很难。您可以将标题解析为单词,然后将它们存储到临时表中,看看有多少匹配,然后根据阈值分配匹配条件。看起来您的数据也存储了一个URL,因此您也可以使用它,并在进行加权标题检查之前检查基本URL以查看它们是否匹配。我并不完全清楚除了标题之外你还在寻找什么样的结果。

这真的不是一个非常简单的任务,我认为有人能够给你一个答案。我相信一所大学的教授正在解决这个问题。

相关问题