带计数的空分组返回null

时间:2018-11-29 00:00:16

标签: sql sql-server

我有一个关于计数/分组依据的查询-如果找不到名为'Bob'的人,则它根本不返回任何行,因为GROUP BY位于空集上-返回计数为null-我想要更改行为,使count返回0而不是null。

includes/file.php

2 个答案:

答案 0 :(得分:1)

您的示例令人困惑,因为您使用的是一些不存在的别名。

尝试使用LEFT JOIN。

with
Table1 as
(select 1 as Id, 'Bob' as Name),
Table2 as 
(select 2 as personId)


select alias1.Id as personId, count(alias2.personId)
from   Table1 as alias1
left   join Table2 as alias2 on alias1.Id = alias2.personId
where  Name = 'Bob'
group  by alias1.Id

答案 1 :(得分:0)

请参阅:

Count Returning blank instead of 0

本质上,您不能使用GROUP BY并且期望没有结果返回行。