ISNULL函数,用0替换null

时间:2015-10-28 04:44:53

标签: sql sql-server

我正在为英超联赛创造积分榜。我需要为主场和客场记录做好榜。其中一个团队没有家庭损失,因此SQL将其计为NULL而不是0.我想用0替换NULL。我无法获得所需的结果。

select ht.Team,
CASE when FTR IS NULL then 0
else count(ht.FTR)
END as LossesHome
Into dbo.HomeLoss 
from dbo.HomeTeam ht
where FTR = 'A'
group by ht.Team, ht.FTR

我认为这会给我带来理想的结果,但是,它只返回19支球队(有20支球队)。 我已经阅读了其他使用coalesce和isnull函数的问题并尝试了它们但我仍然只有19个团队返回。

任何帮助将不胜感激。如果有人需要更多信息或代码,请告诉我。

再次感谢。

3 个答案:

答案 0 :(得分:2)

看起来问题出在你的WHERE子句中,你没有包含FTR空值。

select ht.Team,
   CASE when FTR IS NULL then 0
   else count(ht.FTR)
   END as LossesHome
Into dbo.HomeLoss 
from dbo.HomeTeam ht
where FTR = 'A' or FTR is null
group by ht.Team

答案 1 :(得分:0)

SELECT ISNULL(myColumn, 0 ) FROM myTable

答案 2 :(得分:0)

你可以使用合并功能: -

select ht.Team,
coalesce(count(ht.FTR) as count_LossesHome,0)
Into dbo.HomeLoss 
from dbo.HomeTeam ht
where FTR = 'A'
group by ht.Team