我的 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
当表“ESTAGIARIO”中不存在“ESTAGIO.SK_ESTAGIO”时,它返回1而不是0,我已经尝试使用ISNULL()、NULLIF()和COALESCE(),但仍然找不到问题这使得上面的查询在本应为 0 的情况下返回 1。
最佳答案
您计算的字段错误。这样做,从外部连接表ESTAGIARIO
(而不是从ESTAGIARIO
)获取字段:
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
顺便说一句,count
can never return null
.
关于sql - 当 Count(*) 结果为 Null 时返回 1 而不是 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44155025/