使用COUNT返回Null值

时间:2012-11-26 22:53:33

标签: sql sql-server-2008

使用此查询,我得到的结果是表的两个,因为它们不包含在count中,我想在结果中获取NULL值。要做到这一点,我很确定我需要使用某种子查询,但我不确定如何,因为有问题的属性是聚合。

SELECT Equipment.SerialNo , Name, COUNT(Assignment.SerialNo) 
FROM Equipment
INNER JOIN Assignment
     ON Assignment.SerialNo = Equipment.SerialNo

GROUP BY Equipment.SerialNo, Name

1 个答案:

答案 0 :(得分:4)

如果您想要计算所有行数,则需要将inner join更改为left outer join并计算Assignment.SerialNo以外的其他内容 - 使用count(*)或其他不会为null,因为count(column)不包含该列的空值。如果您不希望计数中包含空Assignment.SerialNo值,则继续在该列上进行聚合。

根据定义,内部联接将跳过Assignment.SerialNoNULL的值 - 外部联接将包含它们。