我有两张具有相同结构的表格。 a.ID *(varchar(10)),a.CODE_ASS (varchar(1))*和b.ID *(varchar(10)),b.CODE_ASS (VARCHAR(1))*
表“a”包含2010年数据,表“b”包含2013年数据。
这两个表在每个表中的行数不应相同,但是公共ID应该相同。我需要比较表并找出差异。
正如您在此示例中所见,绿色行正常,红色行应该是错误。 ID 2,4和5是错误,因为存在一些差异。 “a”表中的ID 6即使在表“b”中已被删除也没问题。
答案 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。
我猜你正在使用一个记录集对象,所以你所要做的就是遍历结果。