Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql ISNULL函数,将null替换为0_Sql_Sql Server - Fatal编程技术网

Sql ISNULL函数,将null替换为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 我以为这会给我期

我正在为英超联赛创造排名。我需要为主客场记录排名。其中一个团队没有主场失利,因此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
我以为这会给我期望的结果,但是,它只返回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条?