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中。
如何找到它?
答案 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行只插入两行。第二个将被拒绝,与第一个相同。