SQL 資料處理過程中遇到除數為0怎麼辦?

2022-10-08 22:27:26 字數 834 閱讀 4042

在sql中做除法處理的時候,可能需要處理除數為零的情況。

(1).case語句

處理方法是用case when ... else 來處理

(2).nullif函式

nullif函式有兩個引數,定義如下:

nullif( expression , expression )

其作用就是:如果兩個指定的表示式相等,就返回null值。

oracle中decode函式

含**釋: decode(條件,值1,返回值1,值2,返回值2,...值n,返回值n,預設值)

select a/b from table1 t1;

--當b為0的時候,oracle會提示除數為0,而我們一般希望除數為0時,直接輸出0即可。

--解決方法:

select decode(b,0,0,a/b) from table1 t1;

--即當b = 0時,返回0,否則才返回a/b的結果。

sql server中的nullif函式

含**釋:nullif(expression,expression) 兩表示式相同,則返回null

--解決方法:

select isnull(a/nullif(b,0),0) from table2 t2;

--當除數b為0時,除數變為null,則a/b也為null,再通過isnull函式將null轉為0.

通過case... when...

--解決方法:

select case when b=0 then 0 else a/b end from table t3

--當除數b等於0時,直接返回0,否則再返回a/b

**:

大資料處理過程的通俗理解

大資料分析 這麼高大上,怎麼講才能最通俗呢,做飯和大資料有什麼關係呢?請聽下面分析 菜地裡的毛菜 原始系統的資料,有錯誤,不精準,毛菜有泥巴,有黃葉子 相當於erp,pdm系統裡面的原始資料。從菜地裡採集到家,分門別類的堆在一起 初步去掉泥巴,黃葉子,分類堆放 相當於從原系統到ods。ods的意思是...

處理過程中頁面遮擋的技術

在程式中定義 div,用 div進行遮擋。在專案中使用 divid laymap style height 500px margin right 3px margin left 3px border color inherit background color blue div divid laym...

SSRS 報表開發過程中,除數為0的處理

這裡僅供記錄,方法並非原創 在ssrs報表開發過程中,我們經常會遇到除數為0的計算 一般來說,我們都是通過iif來進行處理,比如 iif b 0,0,a b 但實際效果,則是,如果b 0的時候,在報表顯示的時候,會顯示為 error 不用懷疑你寫的code,這只是乙個bug而已.針對這種問題,有兩種...