1
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 中不存在。

如何找出来?

4

1 回答 1

0

您可以使用EXCEPT运算符:

SELECT id, a, b
FROM #temp1

EXCEPT

SELECT id, a, b
FROM #temp2 ;

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

于 2013-02-09T14:16:49.680 回答