簡單探討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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 從一個問題討論到Decode函式返回值函式
- 深入探討JavaScript函式物件JavaScript函式物件
- 簡單探討C#中GUI程式設計的標準事件問題C#GUI程式設計事件
- MySql中SUM函式計算錯誤問題MySql函式
- 別再說SUM函式很簡單,進來看看吧!函式
- 一個簡單的oracle函式返回陣列的例子Oracle函式陣列
- 簡單探討TypeScript 列舉型別TypeScript型別
- NSOperation的進階使用和簡單探討
- NSThead的進階使用和簡單探討
- 探討系統中?錢的精度問題
- 專案團隊的信任問題探討
- dev_queue_xmit()函式返回值問題devMIT函式
- javascript建構函式的返回值問題介紹JavaScript函式
- 簡單探討JavaScript 與 TypeScript之間的聯絡JavaScriptTypeScript
- 訂單系統中併發問題和鎖機制的探討
- 給使用者資訊加密的問題探討加密
- 專案團隊的信任問題探討(轉)
- Oracle-空值null和數字相加的問題-nvl函式OracleNull函式
- LeetCode #1:Two Sum(簡單題)LeetCode
- PHP JSON_decode 返回為 null 問題PHPJSONNull
- 關於Redis的問題探討(二):Range方法返回的物件是LinkeHashMap以及轉換辦法Redis物件HashMap
- 遞迴中的遞推與迴歸以及返回值和函式儲存的問題(以階乘問題進行討論)遞迴函式
- 簡單的printf函式與scnaf函式函式
- LINUX LILO若干問題探討 (轉)Linux
- 簡單探討Golang中defer預計算引數Golang
- 深入探討單例模式單例模式
- MySQL中的SUM函式使用教程MySql函式
- Android APP安全問題應對辦法的探討AndroidAPP
- 探討免費遊戲設計的道德標準問題遊戲設計
- Just for fun——C/C++函式返回區域性變數的問題C++函式變數
- 簡單探討區塊鏈中的不可能三角區塊鏈
- 探討電子遊戲應如何設定簡單的成就機制遊戲
- 函式索引的問題函式索引
- 和Null有關的函式Null函式
- 單體模式探討(原創)模式
- C語言關於回撥函式和this指標探討C語言函式指標
- JSP的中文問題再問(一些理論上的探討)JS
- 函式的返回值函式