如何比较2个表之间的数据并在另一个表中插入差异

时间:2016-06-06 11:15:28

标签: sql

我有两个表,表A和表B.两个表都有相同的列和数据类型但没有主键。所有列都包含int值。我想比较表A和表B之间的数据,并将差异数据插入表C.我们如何做到这一点?

create table a
(
col1 int, col2 int, col3 int
)
create table b
(
col1 int, col2 int, col3 int
)
insert into a values
(
2000,
1534,
4556
)

insert into b values
(
2000,
2345,
4118
)

我想要一张表c,其中显示A和B的差异如下 表C输出 0, -811, 438

我们怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

我已根据您的问题更新进行了更新。 您可以使用行号加入并获得列之间的差异。

SELECT t1.col1 - t2.col1 col1
      ,t1.col2 - t2.col2 col2
      ,t1.col3 - t2.col3 col3
from 
(select r1=ROW_NUMBER()over (order by col1),* from a) t1
 inner join (select r2=ROW_NUMBER()over (order by col1),* from b)t2
 on t1.r1=t2.r2