SQL COUNT函数是否自动排除NULL值?

时间:2018-04-12 20:48:11

标签: sql

我有一个名为people的数据库,共有8398条记录。我知道这是因为我用COUNT函数执行了以下查询。

SELECT COUNT(*)
FROM people;

然而,当我在birthdate列上执行COUNT时,我发现这只返回6152条记录。这是因为COUNT函数会自动排除birthdate列中的NULL值吗?

SELECT COUNT(birthdate)
FROM people;

如何在生日列中对所有NULL列进行计数?

非常感谢

1 个答案:

答案 0 :(得分:0)

  

我怎样才能对所有NULL中的列进行计数   生日专栏?

使用CASE表达式检查列是否为空:

SELECT COUNT(CASE WHEN birthdate IS NULL THEN 1 END)
FROM people;

birthdate为空时,表达式的计算结果为1;当brthdate不为空时,表达式的计算结果为NULL。由于COUNT仅计算非空值,因此您将在birthdate列中获得许多NULL。