自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL中如何處理除數(shù)為0的情況?

運維 數(shù)據(jù)庫運維
我們在進行數(shù)據(jù)統(tǒng)計的時候,經(jīng)常會遇到求百分比,環(huán)比,同比等這些需要除以某個數(shù)的情況,而如果除數(shù)為0,數(shù)據(jù)庫是會報錯的。

[[418171]]

本文轉(zhuǎn)載自微信公眾號「SQL數(shù)據(jù)庫開發(fā)」,作者丶平凡世界。轉(zhuǎn)載本文請聯(lián)系SQL數(shù)據(jù)庫開發(fā)公眾號。

問題

我們在進行數(shù)據(jù)統(tǒng)計的時候,經(jīng)常會遇到求百分比,環(huán)比,同比等這些需要除以某個數(shù)的情況,而如果除數(shù)為0,數(shù)據(jù)庫是會報錯的。

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

解決辦法

情況一

例如

  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 

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

情況二

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

例如

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

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

  1. SELECT   
  2. ISNULL(SUM(A)/NULLIF(COUNT(B),0),0)   
  3. FROM  TAB 

其中這里使用了兩個函數(shù),NULLIF()和ISNULL()

NULLIF函數(shù)有兩個參數(shù),定義如下:

NULLIF( expression1 , expression2 )

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

ISNULL函數(shù)也有兩個參數(shù),定義如下:

ISNULL( expression1 , expression2 )

其作用是:如果第一個參數(shù)的結(jié)果為NULL,就返回第二個參數(shù)的值。

當(dāng)COUNT(B)的結(jié)果為0時,恰好與第二個給定的參數(shù)0相等,這個時候NULLIF函數(shù)就會返回NULL,而SUM(A)在除以NULL時結(jié)果為NULL,外層使用ISNULL函數(shù)再對NULL值進行判斷,這樣最終結(jié)果就是0了。

這兩種方法就是我們?nèi)粘L幚沓龜?shù)為0的情況了,一定要記得哦!

 

責(zé)任編輯:武曉燕 來源: SQL數(shù)據(jù)庫開發(fā)
相關(guān)推薦

2020-11-24 12:10:22

瀏覽器前端斷網(wǎng)

2023-03-09 12:21:38

2018-11-21 12:27:21

JavaScript 貨幣值區(qū)域

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

云計算技術(shù)安全

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

領(lǐng)導(dǎo)者疫情情商

2010-10-22 17:22:05

sql server刪

2017-10-26 08:43:18

JavaScript內(nèi)存處理

2019-12-23 10:20:12

Web圖片優(yōu)化前端

2021-03-01 07:31:53

消息支付高可用

2012-12-12 09:49:41

2017-03-13 13:21:34

Git處理大倉庫

2020-12-29 09:11:33

LinuxLinux內(nèi)核

2012-08-29 10:12:13

人才創(chuàng)業(yè)硅谷
點贊
收藏

51CTO技術(shù)棧公眾號