在Oracle SQL中,此操作如何返回no data found
SELECT job_id
FROM HR.EMPLOYEES
WHERE job_id NOT IN ('');
不是空字符串意味着我们应该获取所有数据吗?
答案 0 :(得分:2)
您的解释是正确的。但是在Oracle中不是。
Oracle将空字符串视为NULL
的同义词。而且,由于NOT IN (NULL)
返回NULL
进行任何比较,因此没有的计算结果为TRUE(因为NULL
不正确)。
您期望的行为是正确的行为,以及任何其他数据库如何解释这一行为。