如何使用MySQL COALESCE() 函式與MySQL SUM() 函式自定義輸出?
當MySQL SUM()函式得到一個沒有值的列作為引數時,它將返回NULL而不是0作為輸出。但是,如果我們想將此輸出自定義為顯示0,則可以使用MySQL COALESCE()函式,它接受兩個引數,如果第一個引數為NULL,則返回第二個引數;否則,返回第一個引數。為了說明這一點,我們以“Tender”表為例,該表包含以下資料:
mysql> Select * from tender; +----+---------------+--------------+ | Sr | CompanyName | Tender_value | +----+---------------+--------------+ | 1 | Abc Corp. | 250.369003 | | 2 | Khaitan Corp. | 265.588989 | | 3 | Singla group. | 220.255997 | | 4 | Hero group. | 221.253006 | | 5 | Honda group | NULL | +----+---------------+--------------+ 5 rows in set (0.00 sec)
當我們嘗試查詢“Honda Group”報出的總投標價值時,MySQL SUM()函式返回NULL,因為它在該列中沒有值。
mysql> Select SUM(Tender_value) From Tender Where CompanyName = 'Honda Group'; +-------------------+ | SUM(Tender_value) | +-------------------+ | NULL | +-------------------+ 1 row in set (0.00 sec)
但是,如果我們想將此輸出從NULL自定義為0,則可以使用COALESCE函式與SUM()函式一起查詢“Honda Group”報出的總投標價值。
mysql> Select COALESCE(SUM(Tender_value),0) From Tender Where CompanyName = 'Honda Group'; +-------------------------------+ | COALESCE(SUM(Tender_value),0) | +-------------------------------+ | 0.000000 | +-------------------------------+ 1 row in set (0.00 sec)
現在,當我們使用COALESCE函式與SUM()函式一起查詢“Mohan”(“Name”列中不存在的姓名)鍵入的總頁數時,MySQL SUM()函式返回0:
mysql> SELECT COALESCE(SUM(daily_typing_pages),0) FROM employee_tbl WHERE Name = ‘Mohan’; +-------------------------+ | SUM(daily_typing_pages) | +-------------------------+ | 0 | +-------------------------+ 1 row in set (0.00 sec)
從上面的結果集可以看出,如果列中沒有值,無論其資料型別如何,MySQL SUM()函式都將返回NULL。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP