0

我遇到了一些奇怪的事情,我不明白为什么这不起作用;即使它应该很简单。

假设我有一个查询可以选择这样的临时表:

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”。

有谁经历过这个,知道它可能是什么吗?我尝试了修剪功能,但没有帮助。

4

2 回答 2

0

您的查询没有任何问题。假设 customer_no '123456' 存在于#old_temp 中,那么它将被插入到#temp 中。并假设 cust_number '123456' 在 AnotherCustomerTable 中不存在,那么它应该返回结果。

这是一个SQL Fiddle演示。我的猜测是您的数据不正确。

祝你好运。

于 2013-01-31T07:58:51.973 回答
0

解决了!

愚蠢的我没有考虑子选择中的NULL。添加了这个:

SELECT cust_number from AnotherCustomerTable
WHERE cust_number IS NOT NULL
于 2013-01-31T08:01:32.113 回答