NOT IN ORACLE SQL中的混乱

时间:2020-10-05 16:21:50

标签: sql oracle

在Oracle SQL中,此操作如何返回no data found

SELECT job_id
FROM HR.EMPLOYEES
WHERE job_id NOT IN ('');

不是空字符串意味着我们应该获取所有数据吗?

1 个答案:

答案 0 :(得分:2)

您的解释是正确的。但是在Oracle中不是。

Oracle将空字符串视为NULL的同义词。而且,由于NOT IN (NULL)返回NULL进行任何比较,因此没有的计算结果为TRUE(因为NULL不正确)。

您期望的行为是正确的行为,以及任何其他数据库如何解释这一行为。

相关问题