成人免费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

瀏覽器前端斷網

2018-11-21 12:27:21

JavaScript 貨幣值區域

2023-03-09 12:21:38

2024-10-16 17:04:13

2011-04-11 17:10:16

Oracle

2019-11-08 08:00:00

ASP .NETASP .NET Cocookie

2012-07-30 09:35:10

項目管理

2025-02-21 15:43:29

slotredis集群

2019-08-15 10:20:19

云計算技術安全

2021-03-24 10:40:26

Python垃圾語言

2012-12-12 09:49:41

2020-12-29 09:11:33

LinuxLinux內核

2017-03-13 13:21:34

Git處理大倉庫

2010-10-22 17:22:05

sql server刪

2011-12-15 12:32:19

JavaNIO

2011-01-21 16:27:43

NagiosSendmail

2021-02-02 07:52:02

CSS短內容長內容

2019-02-25 08:35:22

機器學習數據模型

2021-12-09 09:54:02

領導者疫情情商

2017-10-26 08:43:18

JavaScript內存處理
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久中文高清 | 91在线播 | 蜜桃av一区二区三区 | 天天操人人干 | 亚洲精品免费观看 | 久草影视在线 | 成年人网站免费 | 91伊人网 | 国产成人一区二区三区 | 国产7777| 成人在线中文字幕 | 亚洲成人国产精品 | 国产精品91视频 | 国产视频一二三区 | 国产成人精品免费视频大全最热 | 久久久久一区 | 日韩二区| 91在线精品一区二区 | 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 性做久久久久久免费观看欧美 | 日本久久网 | 国产精品一区二区三区久久 | 欧美一区二区在线观看视频 | 久久久久亚洲精品 | 亚洲精品一区二区三区中文字幕 | 91免费在线视频 | 国产精品福利一区二区三区 | 国产精品一卡 | 日韩一区二区不卡 | 久久久视 | 久久午夜精品 | 亚洲精品久久久久久一区二区 | 在线精品一区二区三区 | 亚洲国产一区视频 | 国产成人综合在线 | 国产精品久久久久久妇女6080 | 国产91久久精品一区二区 | av久久 | 中文字幕精品一区久久久久 | 亚洲精品免费视频 | 欧美一区二区三区高清视频 |