对于像...这样的SQL查询。
select Quantity_Books/datepart(hour,Rent_Hour) from Rent_Book where (some conditions..)
当datepart(小时,Rent_Hour)为0时,它们将返回错误。
如果发生了这种情况,我想显示0。
我知道我应该使用case when
但我不确定如何......
还是其他更好的方法?
答案 0 :(得分:3)
您只需先测试值
select
CASE
WHEN datepart(hour,Rent_Hour) = 0 THEN 0
ELSE Quantity_Books/datepart(hour,Rent_Hour)
END
from
Rent_Book where (some conditions..)
或者,使用NULL规则
ISNULL((Quantity_Books / (NULLIF(datepart(hour,Rent_Hour), 0))), 0)
答案 1 :(得分:0)
select case when datepart(hour,Rent_Hour)<>0 then Quantity_Books/datepart(hour,Rent_Hour) else 0 end as col ...