检查表为null返回0无论如何

时间:2014-05-02 21:07:22

标签: sql

我不明白为什么这个查询无效。

我有一个充满行的表格,其中3个列值设置为NULL

但是当我运行以下查询时,它返回0(它应该返回96)

SELECT COUNT(*) FROM SEAT WHERE BOOKED=null;

你知道我做错了吗?

3 个答案:

答案 0 :(得分:1)

您必须使用IS NULL代替= null

由于null在技术上不是一个值,因此您无法使用=运算符比较null。

答案 1 :(得分:1)

使用IS NULL

SELECT COUNT(*)
FROM SEAT
WHERE BOOKED IS NULL

答案 2 :(得分:1)

这取决于您的数据库设置和您使用的特定RDBMS,但如果您使用的是ANSI NULL语法,则无法使用相等性测试(=)直接将值与NULL进行比较 - 它将始终失败

改为使用WHERE BOOKED IS NULL