链接服务器不在查询混乱中
Linked server NOT IN query confusion
假设我在产品 table 中有 100 件商品的状态为 'New' 当我 运行:
select * from Products where Status='New' and Product_GUID COLLATE DATABSE_DEFAULT IN (
SELECT Product_GUID COLLATE DATABASE_DEFAULT FROM [OracleLinkedServer]..[MAINDB].[VIEW_PRODUCTS]
)
我在结果中得到 50 项。
但是当我 运行 不是这样的时候
select * from Products where Status='New' and Product_GUID COLLATE DATABSE_DEFAULT NOT IN (
SELECT Product_GUID COLLATE DATABASE_DEFAULT FROM [OracleLinkedServer]..[MAINDB].[VIEW_PRODUCTS]
)
我没有返回任何项目,我期望得到的是在之前的 IN 查询中没有 returned 的项目,我哪里出错了?整理有问题吗?
此外,第一个查询需要一段时间 return,因为它要发送到链接服务器,但第二个 return 立即就好像它没有尝试从链接服务器获取数据一样服务器。链接服务器是 Oracle。
感谢任何帮助。
可能是以下之一。
- The subquery returns a
NULL
[OracleLinkedServer]..[MAINDB].[VIEW_PRODUCTS]
不包含名为 Product_GUID
的列,因此 this is resolved from the outer scope.
(我的猜测是你描述的第二个)
假设我在产品 table 中有 100 件商品的状态为 'New' 当我 运行:
select * from Products where Status='New' and Product_GUID COLLATE DATABSE_DEFAULT IN (
SELECT Product_GUID COLLATE DATABASE_DEFAULT FROM [OracleLinkedServer]..[MAINDB].[VIEW_PRODUCTS]
)
我在结果中得到 50 项。
但是当我 运行 不是这样的时候
select * from Products where Status='New' and Product_GUID COLLATE DATABSE_DEFAULT NOT IN (
SELECT Product_GUID COLLATE DATABASE_DEFAULT FROM [OracleLinkedServer]..[MAINDB].[VIEW_PRODUCTS]
)
我没有返回任何项目,我期望得到的是在之前的 IN 查询中没有 returned 的项目,我哪里出错了?整理有问题吗?
此外,第一个查询需要一段时间 return,因为它要发送到链接服务器,但第二个 return 立即就好像它没有尝试从链接服务器获取数据一样服务器。链接服务器是 Oracle。 感谢任何帮助。
可能是以下之一。
- The subquery returns a
NULL
[OracleLinkedServer]..[MAINDB].[VIEW_PRODUCTS]
不包含名为Product_GUID
的列,因此 this is resolved from the outer scope.
(我的猜测是你描述的第二个)