以下SQL查询中什么时候计入NULL

When is the NULL counted in the following SQL query

我遇到了两个查询,我认为这两个查询的含义会导致相同的答案。但是,如果由于 NULL..,答案似乎是错误的。但我不确定这两个结果究竟会如何不同。

查询 A

select count(*)
from person
where person.height < 156 or person.height => 156;

查询 B

select count(*)
from person;

我知道 select count(*) 表示在打印的同时还计算 NULL。但是,我不确定当where条件也给出时是否会有任何不同。

如果 person.height 列中有空值,那么您的第一个查询将不会计算这些行。

这是因为 null 是一个标志而不是一个值,因此它不能 return 对任何 value-comparison 运算符为真。因此它既不大于,也不小于,也不等于任何东西(包括另一个空值)。唯一可以 return TRUE 的空值测试是 person.height IS NULL.