我有两个表,表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
我们怎样才能做到这一点?
答案 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