Lea*_*sta 4 sql count sql-server-2012
我从SQL Server获得的代码:
SELECT ESTAGIO.SK_ESTAGIO, ISNULL(count(ESTAGIO.SK_ESTAGIO), 0) as how_many
from ESTAGIO
left join ESTAGIARIO
on ESTAGIARIO.SK_ESTAGIO = ESTAGIO.SK_ESTAGIO
group by
ESTAGIO.SK_ESTAGIO
Run Code Online (Sandbox Code Playgroud)
当“ ESTAGIARIO”表中不存在“ ESTAGIO.SK_ESTAGIO”时,它返回1而不是0,我已经尝试使用ISNULL(),NULLIF()和COALESCE(),但仍然找不到造成该问题的方法上面的查询在应为0时返回1。
您正在计算错误的字段。这样做是从外部联接表ESTAGIARIO
(而不是ESTAGIO
)中获取字段:
SELECT ESTAGIO.SK_ESTAGIO, Count(ESTAGIARIO.SK_ESTAGIO) as how_many
from ESTAGIO
left join ESTAGIARIO
on ESTAGIARIO.SK_ESTAGIO = ESTAGIO.SK_ESTAGIO
group by
ESTAGIO.SK_ESTAGIO
Run Code Online (Sandbox Code Playgroud)
顺便说一句,count
永远无法返回null
。