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

可以用NULLIF跟ISNULL函式來避免

首先如果輸入SELECT 1 + 2 + 3 / 0會發生除以零的錯誤

NULLIF用法:

可以改寫成SELECT 1 + 2 + ISNULL(3/NULLIF(0, 0), 0)

運用NULLIF方法 NULLIF(a, b)代表如果a=b, 那值就是null,否則值是a

ISNULL用法:

再使用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所以可用此方法避免


探索更多來自 宸宸知識庫 的內容

訂閱後即可透過電子郵件收到最新文章。

Comments

No comments yet. Why don’t you start the discussion?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *