我对Any-Operator有疑问.
在Technet上它说
例如,以下查询查找位于未被任何销售人员覆盖的区域中的客户.
Use AdventureWorks2008R2;
GO
SELECT
CustomerID
FROM
Sales.Customer
WHERE
TerritoryID <> ANY
(
SELECT
TerritoryID
FROM
Sales.SalesPerson
);
Run Code Online (Sandbox Code Playgroud)
进一步
结果包括所有客户,但销售区域为NULL的客户除外,因为分配给客户的每个区域都由销售人员承保.内部查询查找销售人员所涵盖的所有销售区域,然后,对于每个区域,外部查询查找不在一个区域内的客户.
但该查询返回所有客户.我将客户TerritoryID更新为没有sales.person的值,但该查询仍返回所有客户,而不是我期望的客户.
我错过了什么吗?可能那篇关于technet的文章完全错了吗? https://technet.microsoft.com/de-de/library/ms187074 ( v= sql.105) .aspx(德语)
有一个客户的TerritoryID = 13
内部查询结果(SELECT TerritoryID FROM Sales.SalesPerson):4 2 4 3 6 5 1 4 6 1 1 6 9 1 8 10 7
在表中,Sales.Customer是CustomerID = 13的行,这是销售人员未涵盖的行.
Bou*_*uke -1
以下查询具有相同的结果:
SELECT CustomerID FROM Sales.Customer
WHERE TerritoryID NOT IN (SELECT TerritoryID FROM Sales.SalesPerson)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
195 次 |
| 最近记录: |