我有一个数据库表:Employee
包含字段id
,name
,sex
,age
。
我运行以下查询,他们给出了不同的结果。那么它们之间的区别是什么?
SELECT name, sex
FROM Employee
WHERE age = null
或
SELECT name, sex
FROM Employee
WHERE age is null
答案 0 :(得分:1)
在SQL中有三值逻辑,TRUE / FALSE / UNKNOWN。任何与NULL的比较都会导致UNKNOWN,无论age
中是否有NULL,始终都会返回空结果集。
select name,sex
from employee
where age=null;
select name,sex
from employee
where age<>null;
要获得正确的结果,对于未知年龄的员工,您需要where age IS NULL;
;对于已知年龄的所有员工,您需要where age IS NOT NULL;
。