vb.net比较两个表并找出差异

时间:2012-08-29 18:24:13

标签: vb.net datatable compare

我有两张具有相同结构的表格。 a.ID *(varchar(10)),a.CODE_ASS (varchar(1))*和b.ID *(varchar(10)),b.CODE_ASS (VARCHAR(1))*

表“a”包含2010年数据,表“b”包含2013年数据。

这两个表在每个表中的行数不应相同,但是公共ID应该相同。我需要比较表并找出差异。

enter image description here

正如您在此示例中所见,绿色行正常,红色行应该是错误。 ID 2,4和5是错误,因为存在一些差异。 “a”表中的ID 6即使在表“b”中已被删除也没问题。

1 个答案:

答案 0 :(得分:1)

如果您编写查询以加入ID上的数据并且仅选择值不同的位置,则表明您正在使用SQL表。你真的想假设0 = NULL吗?

SELECT a.ID FROM a INNER JOIN  b ON a.ID = b.ID WHERE a.ID<>b.ID;

如果你想要0 = NULL,那么你需要将NULL更改为0 - 看起来如下所示。

SELECT a.ID FROM a INNER JOIN b ON a.ID = b.ID WHERE ISNULL(a.ID,0)<>ISNULL(b.ID,0);

ISNULL(param,value)会将NULL更改为值,在本例中为0。

我猜你正在使用一个记录集对象,所以你所要做的就是遍历结果。