如何在sql查询中处理错误?

时间:2010-12-29 07:42:53

标签: sql-server

对于像...这样的SQL查询。

select Quantity_Books/datepart(hour,Rent_Hour) from Rent_Book where (some conditions..)

当datepart(小时,Rent_Hour)为0时,它们将返回错误。

如果发生了这种情况,我想显示0。

我知道我应该使用case when但我不确定如何......

还是其他更好的方法?

2 个答案:

答案 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 ...