ETH官方钱包

切換
舊版
前往
大廳
主題

【SQL】避免SQL除以零的錯誤

KJ | 2017-09-25 23:43:03 | 巴幣 2 | 人氣 7143

前陣子在用SQL計算一些算式時發生了除以0的錯誤
後來GOOGLE一下發現可以用NULLIF跟ISNULL函式來避免
趕快做個筆記免得以後又忘記
===================================================
首先如果輸入SELECT 1 + 2 + 3 / 0
會發生除以零的錯誤


這時候不想用程式寫try catch來判斷例外
就決定從SQL下手
將算式改寫成SELECT 1 + 2 + ISNULL(3/NULLIF(0, 0), 0)



分成兩部分說明:
運用NULLIF方法 NULLIF(a, b)
代表如果a=b, 那值就是null,否則值是a


再使用ISNULL方法 ISNULL(a, b)
如果a是null,值就是b,不然值=a



所以最後將算式從SELECT 1 + 2 + 3 / 0
變成SELECT 1 + 2 + ISNULL(3/NULLIF(0, 0), 0)
就是先在除數的地方用NULLIF判斷是否為0,如果除數為0就讓值等於NULL
外面再用ISNULL包起來,如果值等於NULL就換成預設的值
因為SQL可以除以NULL而不能除以0
所以可用此方法避免


創作回應

更多創作