亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何避免SQL中的“零除”錯誤?

如何避免SQL中的“零除”錯誤?

元芳怎么了 2019-07-22 15:45:56
如何避免SQL中的“零除”錯誤?我有一條錯誤消息:MSG 8134,16級,狀態1,1行除以遇到的零錯誤。寫SQL代碼的最好方法是什么,這樣我就不會再看到這個錯誤消息了?我可以做以下任何一件事:添加WHERE子句,使我的除數永遠不會為零或我可以添加一個案例陳述,這樣就有了對零的特殊處理。是使用NULLIF條款?是否有更好的辦法,或如何執行?
查看完整描述

3 回答

?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

為了避免“零除法”錯誤,我們編寫了這樣的程序:

Select Case when divisor=0 then nullElse dividend / divisorEnd ,,,

但這里有一種更好的方法:

Select dividend / NULLIF(divisor, 0) ...

現在唯一的問題是如果我使用“/”鍵,記住Nullif位。


查看完整回答
反對 回復 2019-07-22
?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

如果您想返回零,如果發生零檢測,您可以使用:

SELECT COALESCE(dividend / NULLIF(divisor,0), 0) FROM sometable

對于每一個除數為零,您將在結果集中得到一個零。


查看完整回答
反對 回復 2019-07-22
?
DIEA

TA貢獻1820條經驗 獲得超2個贊

這似乎是最好的解決我的情況時,試圖解決除以零,這確實發生在我的數據。

假設您想要計算各個學校俱樂部的男女比率,但是您發現以下查詢失敗,并在試圖為沒有女性的指環王俱樂部計算比率時,發出了一個除以零的錯誤:

SELECT club_id, males, females, males/females AS ratio  FROM school_clubs;

您可以使用該函數NULLIF以避免除以零。NULLIF比較兩個表達式,如果它們相等,則返回NULL,否則返回第一個表達式。

將查詢重寫為:

SELECT club_id, males, females, males/NULLIF(females, 0) AS ratio  FROM school_clubs;

除以NULL施予NULL,并且不會產生錯誤。


查看完整回答
反對 回復 2019-07-22
  • 3 回答
  • 0 關注
  • 984 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號