假设有这样一个表:IN子句,TSQL/SQL Server中的NULL处理?
f1 f2
----------
1 3
4 8
6 4
NULL 1
下面的查询按预期工作:
SELECT f2
FROM Table_1 a
WHERE NOT EXISTS (SELECT *
FROM Table_1
WHERE a.f2 = f1)
...和结果集是:
f2
---
3
8
...但与IN
相似的查询不会返回任何内容:
SELECT f2
FROM Table_1 a
WHERE f2 NOT IN (SELECT b.f1
FROM Table_1 b)
有什么问题?
最内层的SELECT在第一个查询中违背了“Table_1”,而在第二个查询中违反了“tbltemp b” - 只是一个错字? –
是的marc_s 对不起。我犯了一个错误 –