SQL 计数不计算列中的"NULL"



我正在学习MS SQL&尝试计数在记录表中输入的不等于actionID(列(值21的用户。下面是查询,但它并没有给我预期的结果。它没有考虑NULL值。它显示计数为0,但它应该显示结果为1。我在actionID列字段中有NULL值

Select COUNT(*) from db.record where userID ='xyz' AND NOT actionID = 21

这是针对MySQL的您需要一个NULL安全比较:

NOT actionID <=> 21

几乎所有与NULL的比较都返回NULL。而NOT NULL仍然是NULL

对于MS SQL,请像下面的一样使用它

(actionID <> 21 OR actionID is null)

最新更新