SQL中除數為0處理情況演示
情況一
例如
SELECT A/B FROM TAB
遇到這樣的情況,一般的處理方法是用CASE WHEN來判斷B的值
SELECT CASE WHEN B=0 THEN 0 ELSE A/B END FROM TAB
這樣當B如果是0,我們直接賦一個值,避免A/B參與計算報錯。
情況二
上面是一種常見的情況,但是如果遇到下面這樣的聚合函式呢?
例如
SELECT SUM(A)/COUNT(B) FROM TAB
遇到這樣的情況CASE WHEN 是不能判斷COUNT(B)的值的,因為WHEN後面的條件不能使用聚合函式(語法要求),這個時候我們可以這樣處理
SELECT ISNULL(SUM(A)/NULLIF(COUNT(B),0),0) FROM TAB
其中這裡使用了兩個函式,NULLIF()和ISNULL()
NULLIF函式有兩個引數,定義如下:
NULLIF( expression1 , expression2 )
其作用就是:如果兩個指定的表示式相等,就返回NULL值。
ISNULL函式也有兩個引數,定義如下:
ISNULL( expression1 , expression2 )
其作用是:如果第一個引數的結果為NULL,就返回第二個引數的值。
當COUNT(B)的結果為0時,恰好與第二個給定的引數0相等,這個時候NULLIF函式就會返回NULL,而SUM(A)在除以NULL時結果為NULL,外層使用ISNULL函式再對NULL值進行判斷,這樣最終結果就是0了。
這兩種方法就是我們日常處理除數為0的情況了,一定要記得哦!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2790381/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java程式異常處理的特殊情況Java
- xcodebuild -workspace 情況下,部分坑的處理XCodeUI
- 如何處理瀏覽器的斷網情況?瀏覽器
- Transact-SQL處理小數SQL
- session儲存資料庫中以及禁用cookie情況下的處理Session資料庫Cookie
- Laravel-admin 處理 select 有 data 鍵的情況Laravel
- ash報告中無sql_id的情況SQL
- 哪些情況應該廢標,廢標後如何處理
- mybatis sql foreach 引數的傳入的三種情況!!MyBatisSQL
- 批處理-刪除環境變數變數
- Oracle 無備份情況下undo檔案損壞處理Oracle
- FE.UX-常見CSS邊界情況防禦處理UXCSS
- 在導數為0時極值點仍然難求的情況下用梯度下降法逼近梯度
- Oracle SQL處理OracleSQL
- [20211203]演示job啟動時間改變的情況.txt
- 關於docker-compose up -d 出現超時情況處理Docker
- 【SQL】Oracle SQL處理的流程SQLOracle
- sql 預處理為什麼可以放置SQL隱碼攻擊SQL
- Centos中徹底刪除Mysql(rpm、yum安裝的情況)CentOSMySql
- js中bool值為false的幾種情況JSFalse
- bat批處理徹底刪除0KB頑固檔案BAT
- "(UE4Editor.exe中)處有未經處理的異常:0xC0000005:讀取位置0x0000000000000000時發生訪問衝突"報錯情況+解決方法+原因分析
- Mercury Research:2021年 x86處理器市場份額情況
- JavaScript 中的引數處理JavaScript
- 給一組數,分為兩組,求差最小的情況
- Mybatis中Foreach動態SQL標籤(map和list兩種情況)MyBatisSQL
- 遺留程式碼處理技巧與案例演示
- 總結kafka的consumer消費能力很低的情況下的處理方案Kafka
- ORA-00059: maximum number of DB_FILES exceeded 情況分析及實驗處理
- SQL中的常用的字串處理函式大全SQL字串函式
- 使用 VSTS 進行 CI 的過程中,無法識別 .NET Core 2.x 的情況處理
- 不重啟mysql情況修改引數變數MySql變數
- Invoca:85%的客戶互動在沒有人工的情況下得到處理
- Redis實現分散式鎖(setnx、getset、incr)以及如何處理超時情況KJBPRedis分散式
- SQL Server表分割槽刪除詳情DSCCSQLServer
- 變數轉化為判斷條件時的各種情況變數
- 月結各模組關閉情況查詢SQLSQL
- oracle v$sqlare 分析SQL語句使用資源情況OracleSQL