比较两个表格'数据

时间:2012-11-19 20:58:24

标签: sql

drop table #temp1
drop table #temp2

create table #temp1 (id int identity, A int, B int)
create table #temp2 (id int identity, A int, B int)

insert into #temp1 values (20, 1001)
insert into #temp1 values (20, 1001)
insert into #temp1 values (30, 1001)

insert into #temp2 values (20, 1001)

在SQL的帮助下,我需要发现#temp1中的第2行和第3行不存在于#temp2中。

如何找到它?

1 个答案:

答案 0 :(得分:0)

您可以使用 EXCEPT 运算符:

SELECT id, a, b
FROM #temp1

EXCEPT

SELECT id, a, b
FROM #temp2 ;

你必须考虑一些非常严重的事情。 id列会自动获取其编号,因此它们对您没有任何价值。在一个实际示例中,您可能会在UNIQUE列中设置(a, b)约束,或者将其他组合定义为PRIMARY KEY。所以,上面的例子是无效的。 table1,第1和第3行只插入两行。第二个将被拒绝,与第一个相同。