2010-12-29 4 views
0

Для SQL запросов, как ..Как обрабатывать ошибку в sql-запросах?

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

Они возвратятся ошибку, когда DatePart (час, Rent_Hour) 0.

Если STH, как это произойдет, я хотел бы показать 0.

Я знаю, что должен использовать case when Но я не совсем уверен, как ..

Или любой другой лучший метод?

ответ

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) 
+0

вы имеете в виду .. выберите ISNULL ((Quantity_Books/(NULLIF (DATEPART (час, Rent_Hour), 0))), 0) из Rent_Book где (некоторые условия ..) .... ??? – william

+0

@william: да, извините, если не ясно – gbn

+0

Хорошо. Tkz много .. – william

0
select case when datepart(hour,Rent_Hour)<>0 then Quantity_Books/datepart(hour,Rent_Hour) else 0 end as col ... 
Смежные вопросы