成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL中如何處理除數為0的情況?

運維 數據庫運維
我們在進行數據統計的時候,經常會遇到求百分比,環比,同比等這些需要除以某個數的情況,而如果除數為0,數據庫是會報錯的。

[[418171]]

本文轉載自微信公眾號「SQL數據庫開發」,作者丶平凡世界。轉載本文請聯系SQL數據庫開發公眾號。

問題

我們在進行數據統計的時候,經常會遇到求百分比,環比,同比等這些需要除以某個數的情況,而如果除數為0,數據庫是會報錯的。

那么遇到這樣的情況我們怎么處理呢?下面我們用示例給大家講解一下處理方法。

解決辦法

情況一

例如

  1. SELECT  A/B  FROM TAB 

遇到這樣的情況,一般的處理方法是用CASE WHEN來判斷B的值

  1. SELECT  
  2. CASE WHEN B=0 THEN 0 ELSE A/B END   
  3. FROM TAB 

這樣當B如果是0,我們直接賦一個值,避免A/B參與計算報錯。

情況二

上面是一種常見的情況,但是如果遇到下面這樣的聚合函數呢?

例如

  1. SELECT  SUM(A)/COUNT(B) FROM TAB 

遇到這樣的情況CASE WHEN 是不能判斷COUNT(B)的值的,因為WHEN后面的條件不能使用聚合函數(語法要求),這個時候我們可以這樣處理

  1. SELECT   
  2. ISNULL(SUM(A)/NULLIF(COUNT(B),0),0)   
  3. 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的情況了,一定要記得哦!

 

責任編輯:武曉燕 來源: SQL數據庫開發
相關推薦

2020-11-24 12:10:22

瀏覽器前端斷網

2023-03-09 12:21:38

2018-11-21 12:27:21

JavaScript 貨幣值區域

2024-10-16 17:04:13

2019-11-08 08:00:00

ASP .NETASP .NET Cocookie

2011-04-11 17:10:16

Oracle

2012-07-30 09:35:10

項目管理

2019-08-15 10:20:19

云計算技術安全

2021-03-24 10:40:26

Python垃圾語言

2011-01-21 16:27:43

NagiosSendmail

2025-02-21 15:43:29

slotredis集群

2021-12-09 09:54:02

領導者疫情情商

2019-12-23 10:20:12

Web圖片優化前端

2017-10-26 08:43:18

JavaScript內存處理

2021-03-01 07:31:53

消息支付高可用

2012-12-12 09:49:41

2020-12-29 09:11:33

LinuxLinux內核

2017-03-13 13:21:34

Git處理大倉庫

2023-04-06 15:19:51

2014-11-10 10:52:33

Go語言
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品精品3d动漫 | 国产精品一区在线观看你懂的 | 国产高清免费在线 | 九色 在线 | 亚洲国产精品99久久久久久久久 | 成人欧美一区二区三区在线播放 | 九九综合 | 亚州精品天堂中文字幕 | 亚洲区一区二 | 日韩欧美理论片 | 精品欧美一区二区三区久久久 | 亚洲精品电影网在线观看 | 国产精品视频网 | 日韩乱码在线 | 欧美成年网站 | 91免费在线看 | 亚洲三区在线观看 | 亚洲国产成人精品久久久国产成人一区 | 亚洲精品视频观看 | 久久综合888| 日韩免费av网站 | 国产精品一区二区久久 | 91中文字幕在线观看 | 国产在线观看不卡一区二区三区 | 日韩中文字幕久久 | 久久国产精品视频观看 | 狠狠爱免费视频 | 国产一区二区在线免费 | 国产一二三区免费视频 | 国产一区二区三区在线 | 精品国产一区二区三区性色 | 超碰人人爱 | 国产三区视频在线观看 | 香蕉视频1024 | 我要看黄色录像一级片 | 日韩视频精品在线 | 亚洲第一在线 | 九色 在线 | 精品视频一区二区三区 | 亚洲一区免费视频 | 在线一区 |