Sql sorgularında 0 ile bölünme hatalarının NULLIF fonksiyonu ile önlenmesi

by Eren 13. January 2009 14:56

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(bolunen/nullif(bolen,0),0) From tablom

 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.

 

Tags:

Comments

12/16/2009 1:35:54 AM #

Sohbet

Bilgiler için çok teşekkürler, gerekli ve bilinmesi gereken bilgiler emeğine sağlık.

Sohbet Turkey | Reply

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading



Hakkımda Kısaca

Eren Çetin

Bilgisayar Mühendisi

İstanbul / Turkiye

Eren Çetin - 2010
Eren Çetin, Bilgisayar Mühendisi , Yazılım Geliştirme Uzmanı