Sql ISNULL函数,将null替换为0
我正在为英超联赛创造排名。我需要为主客场记录排名。其中一个团队没有主场失利,因此SQL将其计算为NULL,而不是0。我想用0替换空值。我很难得到想要的结果Sql ISNULL函数,将null替换为0,sql,sql-server,Sql,Sql Server,我正在为英超联赛创造排名。我需要为主客场记录排名。其中一个团队没有主场失利,因此SQL将其计算为NULL,而不是0。我想用0替换空值。我很难得到想要的结果 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 我以为这会给我期
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个团队
任何帮助都将不胜感激。如果有人需要更多信息或代码,请告诉我
再次感谢 问题似乎出在WHERE子句中,其中未包含FTR null值
SELECT ISNULL(myColumn, 0 ) FROM myTable
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
您可以使用合并功能:-
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
你正在使用哪个数据库?是oracle吗?能否添加示例数据和预期输出。同样奇怪的是,你有
count(ht.FTR)
和ht.FTR
上的一组人。我使用的是SQL Management Studio。我希望看到20个团队,得到19个。我将添加查询的文本结果,我缺少一支没有主场失利的球队。ht.FTR的小组是一个错误。我不知道为什么下面的答案不能产生正确的结果。为了得到正确的结果,我不得不在HomeLoss表中手动输入Chelsea和0。我使用了它,它仍然返回19.SELECT ISNULL(myColumn,0)作为返回值myTable@UKcats82你是说SELECT*FROM dbo.HomeTeam
会给你19条记录,而不是20条?