我正在阅读数据库系统的基础知识,在主题嵌套子查询(集比较)中,我写道some
和in
是相同的,而<>some
和{{1} } 不是。
根据我的说法,not in
的意思是“至少一个”,而<>some
的意思是“不在集合中” ...所以我认为它们的意思应该相同。
答案 0 :(得分:6)
它们不一样!
<>SOME
的意思是:not = a
或 not = b
或 not = c
...
NOT IN
的意思是:not = a
和 not = b
和 not = c
...
希望现在对您来说更加清楚。
例如:
SELECT CustomerID
FROM Sales.Customer
WHERE TerritoryID <> ANY
(SELECT TerritoryID
FROM Sales.SalesPerson);
此查询返回每个 CustomerID ,但包含TerritoryID is NULL
的除外。
如果您使用NOT IN
,则查询将不返回任何内容。
答案 1 :(得分:1)
<>仅适用于1个值,而“ not in”适用于1个或多个值,例如
1. WHERE id <> '123'
2. WHERE id NOT IN ('123') --same as case 1
3. WHERE id NOT IN ('123', '456')