Sql de 0/0 yada x/0 gibi hesaplamalar sorgumuzun hata fırlatmasına sebebiyet vermektedir. Bunu bölen kısmın 0 olup olmama durumunu CASE WHEN yapısıyla yada en kötü ihtimal IF THEN bloğuyla tespit edip önlememiz muhtemeldir.
Ama ben size bunun daha basit ve daha performanslı bir yöntemini söyleyeyim;
SELECT ISNULL(SAYI1/NULLIF(SAYI2,0),0) FROM TABLOADIMIZ
nullif fonksiyonu parametre olarak aldığı iki parametre eşit değerde olduğu taktirde null geri döndürür. Eşit olmama değerinde ise birinci parametreyi geri döndürür. Yukarıda yer alan ifadede ise bolen kolonu 0 a eşit ise fonksiyon null döndürecektir.Bu null değeride en baştaki isnull ifadesiyle 0 olarak geri dönecektir.
NullIf işe yarayan bir fonksiyona benziyor. Aklınızda bulunsun.
Alıntıdır...
Hiç yorum yok:
Yorum Gönder