我正在阅读“数据库系统的基础”一书,在主题“嵌套子查询(集合比较)”中写道,some和in是相同的,而<>some和not in是不同的。根据我的说法,<>some的意思是“至少不是一个”,not in的意思是“不在集合中”,我认为它们的意思应该是一样的。
发布于 2018-09-06 18:06:58
它们是不一样的!
<>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);此查询将返回除TerritoryID is NULL以外的所有CustomerID。
而如果您使用NOT IN,则查询将不返回任何内容。
发布于 2018-09-06 18:03:13
<>只适用于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')https://stackoverflow.com/questions/52201485
复制相似问题