替代SQL Server中的“全部除外”

问题描述 投票:-1回答:1

请咨询您的建议,以找到sql服务器中“除外所有”的替代方法。我有表A和表B,我想从表A中提取不等于表B的数据。所以我使用“除外”,但是我在两个表中都有重复,因此我无法获得重复的结果表A的值。

sql sql-server tsql sap hana
1个回答
0
投票

尝试一个不存在的子句,这将使您无法获得不同的列表。

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之间的不同结果集。

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.