sql 语句中count()有条件的时候为什么要加上or null

1、sql 语句中count()有条件的时候为什么要加上or null。

如count(province = '浙江' or NULL) 这部分,为什么要加上or NULL,直接count(province='浙江')有什么问题吗?不就是要找province = '浙江'的数据吗,为什么要计算NULL的数据。

答案:
因为当 province不是浙江时 province='浙江' 结果false。不是 NULL,
count在值是NULL是不统计数, (count('任意内容')都会统计出所有记录数,因为count只有在遇见null时不计数,即count(null)==0,因此前者单引号内不管输入什么值都会统计出所有记录数),至于加上or NULL , 很像其他编程里的or运算符,第一个表达式是true就是不执行or后面的表达式,第一个表达式是false 执行or后面的表达式 。当province不为浙江时province = '浙江' or NULL 的结果是NULL,Count才不会统计上这条记录数


分析如下所示:

sql 语句中count()有条件的时候为什么要加上or null

具体执行sql如下所示:

sql 语句中count()有条件的时候为什么要加上or null

可以看到如果将true或者false替换为province='浙江省'的话,执行结果就是统计出每张表各个省份的数据表数据量。

sql 语句中count()有条件的时候为什么要加上or null