将CSV文件与唯一列/主键进行比较

时间:2011-06-22 18:26:48

标签: csv

我需要比较两个csv文件,它们都包含一个唯一的ID列,需要用来比较匹配的行。

在我燃烧午夜油以重新发明轮子之前,还有什么东西吗?

由于 拉尔夫

4 个答案:

答案 0 :(得分:0)

如果您使用的是Windows,一种解决方案是在程序中使用ISAM CSV驱动程序,然后您可以跨表编写查询。

或者,将两者加载到Excel中,对ID列进行排序,然后对工作簿进行比较。

答案 1 :(得分:0)

我建议检查BeyondCompare - 它是一个比较实用程序,可以很好地进行CSV比较。它以表格格式显示数据,您可以指定“键”列,告诉它要忽略哪些列等...

有一个免费版本 - 我不确定CSV比较功能是否附带,但值得一试:

http://www.scootersoftware.com/

我不为他们工作,我只是一个快乐的客户。 :) 约翰

答案 2 :(得分:0)

我会使用SQL Server。使用导入向导和CSV文件作为平面文件数据源。将它们导入SQL Server中的两个表后,您可以对它们进行分析。

SQL Server Express是免费的。获得从两个CSV文件创建的两个表后,使用INNER JOIN连接您要查找的ID上的两个表。

将数据导入SQL Server数据库的指南 http://www.gotknowhow.com/articles/how-to-import-delimited-text-files-sql-server-2005-database

答案 3 :(得分:0)

如果您可以使用MS Excel,那么从Excel文件查询应该有帮助(您需要先将csv文件保存为xls或xlsx格式):

  • 在第一个文件中定义数据集的名称(公式选项卡 - >定义名称)
  • 在第二个文件中定义数据集的名称
  • 转到“数据”标签,选择“来自其他来源”,然后从下拉列表中选择“来自Microsoft Query”
  • 选择第二个文件并确认您要手动合并列
  • 在以下窗口“从Excel文件查询”中,将第一个数据集的unique_ID_column拖放到第二个数据集的unique_ID_column中 - 将创建这些列之间的链接
  • 转到“文件”菜单,单击“将数据返回到MS Office Excel”,将弹出“导入数据”对话框
  • 选择要将匹配数据导入其中的工作表
  • 点击确定 - >您应该看到与两个csv文件中的列匹配的数据

或者,如果您不介意将文件上传到在线服务,可以使用例如http://www.gridoc.com/join-tables并通过创建匹配规则来匹配行(免责声明:我是该工具的作者)。 / p>

希望这有帮助。