我遇到了一些奇怪的事情,我无法理解为什么这不起作用;即使它应该很简单。
假设我有一个查询选择这样的临时表:
SELECT customer_no
INTO #temp
FROM #old_temp
从另一个临时选择的一个临时工并且有效。 Customer_no是varchar(6)。我只有一个值用于测试目的:'123456'
然后代码试图这样做:
SELECT customer_no
FROM #temp
WHERE customer_no NOT IN
(SELECT cust_number from AnotherCustomerTable)
在AnotherCustomerTable中,“123456”确实不存在。 customer_no也是varchar(6)。我尝试过什么,结果是空的,而我应该在结果集中得到'123456'。
任何经历过这种情况并知道它可能是什么的人?我试过修剪功能,但没有帮助。
答案 0 :(得分:0)
您的查询没有任何问题。假设customer_no'123456'存在于#old_temp中,则它将被插入到#temp中。假设在AnotherCustomerTable中不存在cust_number'123456',那么它应该返回结果。
这是一个SQL Fiddle演示。我的猜测是你的数据不正确。
祝你好运。答案 1 :(得分:0)
解决!
愚蠢的我没有考虑子选择中的NULL。补充一点:
SELECT cust_number from AnotherCustomerTable
WHERE cust_number IS NOT NULL