0

我有两张结构相同的桌子。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”表中被删除。

4

1 回答 1

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。

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

于 2012-08-29T18:52:19.297 回答