这是我在下面收到的错误:
Divide by zero error encountered.
Warning: Null value is eliminated by an aggregate or other SET operation.
环顾四周的解决方案似乎需要使用NULLIF或ISNULL,我不确定如何将其包含在下面的行中。
select
min(round(OnCallTime*100/TotalTime,1)) as total
我正在使用SQL Management Studio 2012
答案 0 :(得分:4)
在分母中使用NULLIF
,如下所示:
select
min(round((OnCallTime*100/NULLIF(TotalTime,0)),1)) as total
因此,每当TotalTime
为零时,它将被NULL
取代,并且不会出现Division by Zero
的错误。
答案 1 :(得分:0)
使用coalesce()
函数
select
min(round(OnCallTime*100/coalesce(TotalTime,1),1)) as total
答案 2 :(得分:0)
使用coalesce()
返回第一个非空值
select min(round((OnCallTime)*100/coalesce(TotalTime,1),1)) as total
答案 3 :(得分:0)
因此,如果TotalTime = 0,您要显示什么?我建议使用NULL,因为未定义除以零?
您可以按以下方式编写查询
select
min(round(
(OnCallTime*100)
/ (case when TotalTime =0 then null else TotalTime end)
,1
)
) as total