簡單探討sum()函式返回null的問題
導讀 | MySQL的Sum()函式是用來找出所有記錄的一個欄位的總和,下面這篇文章主要給大家介紹了關於Mysql使用sum()函式返回null的問題,文中透過例項程式碼介紹的非常詳細,需要的朋友可以參考下 |
SUM()函式用於計算一組值或表示式的總和,SUM()函式的語法如下:
SUM(DISTINCT expression)
SUM()函式是如何工作的?
如果在沒有返回匹配行SELECT語句中使用SUM函式,則SUM函式返回NULL,而不是0。
DISTINCT運算子允許計算集合中的不同值。
SUM函式忽略計算中的NULL值。
在專案中使用 Mysql 中的 sum() 函式求和時,除錯時發現報出下面的錯誤資訊:
sql: Scan error on column index 0, name "total": converting NULL to int64 is unsupported
我相應執行的sql語句如下:
SELECT SUM(consume) as total FROM task_income WHERE consume_type=3 AND uid=20;
為了找到原因,我在 Navicat 中執行了一遍出問題的sql和引數,發現結果中確實是返回了 null :
按我之前開發時的想法:
如果有相應的資料,返回求和後的值
如果沒有符合條件的資料,返回 0
結果,當沒有符合條件的資料時卻返回了 null 。
可以透過結合使用 ISNULL 或 COALESCE 函式來解決。
相應的示例如下:
SELECT IFNULL(SUM(Column1), 0) AS total FROM... SELECT COALESCE(SUM(Column1), 0) AS total FROM...
上面說道,使用 ISNULL 或 COALESCE 函式都可以解決為 null 的問題,那麼這兩個函式有什麼區別呢?
ISNULL 函式接受兩個引數,如果第一個引數不是 null 會直接返回,如果第一個引數是 null ,則返回第二個引數
COALESCE 函式可以接受兩個或多個引數,並返回第一個非 null 的引數,如果所有引數都為 null,則會返回 null
How do I get SUM function in MySQL to return ‘0’ if no values are found? - Stack Overflow sql - What is the difference bewteen ifnull and coalesce in mysql? - Stack Overflow
到此這篇關於Mysql使用sum()函式返回null問題的文章就介紹到這了
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2855256/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 簡單探討C#中GUI程式設計的標準事件問題C#GUI程式設計事件
- MySql中SUM函式計算錯誤問題MySql函式
- 別再說SUM函式很簡單,進來看看吧!函式
- NSOperation的進階使用和簡單探討
- NSThead的進階使用和簡單探討
- PHP JSON_decode 返回為 null 問題PHPJSONNull
- 簡單探討TypeScript 列舉型別TypeScript型別
- LeetCode #1:Two Sum(簡單題)LeetCode
- 探討系統中?錢的精度問題
- 簡單探討JavaScript 與 TypeScript之間的聯絡JavaScriptTypeScript
- 關於Redis的問題探討(二):Range方法返回的物件是LinkeHashMap以及轉換辦法Redis物件HashMap
- 關於vue中image控制元件,onload事件裡,event.target 為null的奇怪問題探討Vue控制元件事件Null
- 遞迴中的遞推與迴歸以及返回值和函式儲存的問題(以階乘問題進行討論)遞迴函式
- 深入探討Function Calling:實現外部函式呼叫的工作原理Function函式
- Android APP安全問題應對辦法的探討AndroidAPP
- MySQL(四)日期函式 NULL函式 字串函式MySql函式Null字串
- 簡單探討Golang中defer預計算引數Golang
- 深入探討單例模式單例模式
- MySQL中的SUM函式使用教程MySql函式
- Linq sum()時遇到NULLNull
- Just for fun——C/C++函式返回區域性變數的問題C++函式變數
- 簡單探討區塊鏈中的不可能三角區塊鏈
- 快取函式的簡單使用快取函式
- 工業機器人振動控制問題探討機器人
- 函式的返回值函式
- 函式呼叫棧的問題函式
- MYSQL timestamp NOT NULL插入NULL的報錯問題MySqlNull
- 函式的祕密之 函式返回值函式
- MySQL 對window函式執行sum函式疑似BugMySql函式
- 話題探討:GitHub不用分散式,能說明什麼?Github分散式
- Elasticsearch 線上實戰問題及解決方案探討Elasticsearch
- 深入探討:Maven中的物料清單BOMMaven
- 簡單的檔案快取函式快取函式
- 簡單探索Python中的filter函式PythonFilter函式
- 探討分散式ID生成系統分散式
- 如何給列表降維?sum()函式的妙用函式
- 如何給列表降維?sum() 函式的妙用函式
- Swift 函式提前返回Swift函式