<> All 和 Not In 有什么区别

Shi*_*ama 8 t-sql

你能告诉我两者之间的区别吗

select CustomerId from Customer Where TerritoryId <> All(select TerritoryId from Salesperson)

select CustomerId from Customer where TerritoryId NOT IN (select TerritoryId from Salesperson)
Run Code Online (Sandbox Code Playgroud)

Kon*_*bas 8

结果没有区别,但语义略有不同。

X [comparison] ALL(set)意味着它set是空的或者比较是TRUE针对集合中的每个条目。

X NOT IN (set) 表示 X 不属于该集合。

虽然[comparison]是“不相等”,但两种形式是等价的。但是对于其他比较,它可能会有所不同。