请咨询您的建议,以找到sql服务器中“除外所有”的替代方法。我有表A和表B,我想从表A中提取不等于表B的数据。所以我使用“除外”,但是我在两个表中都有重复,因此我无法获得重复的结果表A的值。
尝试一个不存在的子句,这将使您无法获得不同的列表。
Use AdventureWorks2017;
Go
Create Table #A (a int, b varchar(1))
Insert into #A (a, b)
Select 1, 'A' UNION ALL
Select 1, 'A' UNION ALL
Select 1, 'A' UNION ALL
Select 2, 'B'
Create Table #B (a int, b varchar(1))
Insert into #B (a, b)
Select 2, 'B'
Select a, b
FROM #A
EXCEPT
Select a, b
From #B
Select a, b
from #A as a where not exists (Select 1 from #B as b
where a.a = b.a and a.b = b.b)
通过运行上面的代码,您可以看到where not exist子句和except之间的不同结果集。
希望这会有所帮助。