2010-12-29 5 views
0

für SQL-Abfragen wie ..Wie gehe ich mit Fehler in SQL-Abfragen?

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

Sie werden Fehler zurück, wenn Datumsteil (Stunde, Rent_Hour) 0.

ist Wenn etw wie das passiert, würde ich 0

zeigen, wie Ich weiß, ich sollte case when verwenden Aber ich bin nicht wirklich sicher, wie ..

Oder eine andere bessere Methode?

Antwort

3

Sie würden einfach den Wert testen erste

select 
    CASE 
     WHEN datepart(hour,Rent_Hour) = 0 THEN 0 
     ELSE Quantity_Books/datepart(hour,Rent_Hour) 
    END 
from 
    Rent_Book where (some conditions..) 

Alternativ NULL Regeln verwenden

ISNULL((Quantity_Books/(NULLIF(datepart(hour,Rent_Hour), 0))), 0) 
+0

Sie bedeuten .. wählen ISNULL ((Quantity_Books/(NULLIF (Datumsteil (Stunde, Rent_Hour), 0))), 0) von Rent_Book wo (einige Konditionen ..) .... ??? – william

+0

@william: ja, tut mir leid, wenn nicht klar – gbn

+0

Ok. Tkz viel .. – william

0
select case when datepart(hour,Rent_Hour)<>0 then Quantity_Books/datepart(hour,Rent_Hour) else 0 end as col ...