我最近开始学习oracle和sql.在学习的过程中,我遇到了一些问题,我的朋友在接受采访时被问到了.
SELECT *
FROM Employees
WHERE NULL IS NULL;
Run Code Online (Sandbox Code Playgroud)
此查询将生成Employees表中的所有行.至于我已经理解Oracle在列中搜索数据,那么,NULL,它在这里被视为列名吗?当我说Oracle在列中搜索数据时,我是否正确?为什么Oracle会在此查询中提供所有行?在WHERE子句中,条件的左侧是否必须是COLUMN NAME?它不应该抛出错误吗?
SELECT *
FROM Employees
WHERE NULL = NULL;
Run Code Online (Sandbox Code Playgroud)
没有选择行.
好吧,我知道除了IS NULL和IS NOT NULL之外,我无法使用运算符比较NULL值.但为什么它应该产生结果而不是错误.有人能解释一下这个吗?Oracle是否将NULL视为列以及空单元格?