SQL 遇到以零作除數錯誤的處理

2022-01-17 07:28:40 字數 511 閱讀 5012

這樣乙個情況

select * from a where c>0 and (b/c)>0.5 and (b/c)<0.6

這樣一條語句,由於b,c是二個數值列,裡面記錄的是金額,而c 的話有可能為0,那麼這時我們雖然加上了c>0這個條件,卻仍有可能 出現 遇到以零作除數錯誤 這個錯誤.

解決這個問題,有二種方法,一種是自己加個函式 發覺c=0時,將c改成1 ;如 b/checkdata(c)<0.6

另一種方式 則是使用sqlserver 的選項來禁止出現以零除的錯誤中斷,讓而讓其為null

setansi_warnings

offset

arithabort

offset

arithignore

onselect * from a where c>0 and (b/c)>0.5 and (b/c)<0.6

如果一來,當執行時,遇到某條記錄裡為0時,則二數相除為null,而null<0.6這個是不成立的,從而達到了作為條件的目的.

MSSQL遇到以零作除數錯誤的處理方法

在sql server中做除法處理的時候,我們經常需要處理除數為零的情況,因為如果遇到這種情況的時候,sqlserver會丟擲遇到以零作除數錯誤的異常,我們總不希望把這個異常顯示給使用者吧。做個會報這個錯誤的示例,如以下sql declare a int declare b int set a 10...

怎樣以無功功率作標準去選擇UPS?

摘要 目錄 假設要為額定功率為500va,功率因數為0.9的負載配置ups,根據假設的負載引數計算如下 500va 0.8 625va ups驅動功率因數為 0.9的負載時,其驅動能力為額定功率的80 625va 0.7 892.86va 後備式ups一般選取它額定功率的60 70 的負載量 ups...

最近遇到的SQL問題

select translator as 譯者姓名 count as 總派件次數 sum convert numeric 8,2 quantity as 總翻譯字數 sum case when datediff mm,date getdate 6 then convert numeric 8,2 q...