MySQL 如何将COALESCE()函数与SUM()函数结合使用以定制输出?

MySQL 如何将COALESCE()函数与SUM()函数结合使用以定制输出?

MySQL SUM()函数获取一个没有值的列作为参数时,输出会返回NULL,而不是0。但如果我们想自定义输出,以显示0作为输出,那么我们可以使用MySQL COALESCE()函数,该函数接受两个参数,并且如果第一个参数为NULL,则返回第二个参数,否则返回第一个参数。为了说明这一点,我们以“招标”表的以下数据为例:

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行(0.00秒)
Mysql

当我们在“Honda Group”列中找到总招标价值时,MySQL SUM()函数将返回NULL,因为该列没有任何值。

mysql> Select SUM(Tender_value) From Tender Where CompanyName = 'Honda Group';

+-------------------+
| SUM(Tender_value) |
+-------------------+
|              NULL |
+-------------------+

1行(0.00秒)
Mysql

但是,假设我们想将此输出从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行(0.00秒)
Mysql

现在,当我们使用COALESCE函数与SUM()查找“Name”列中没有“Mohan”这个名字的员工打字的总页数时,MySQL SUM()函数将返回0。

mysql> SELECT COALESCE(SUM(daily_typing_pages),0) FROM employee_tbl WHERE Name = Mohan’;

+-------------------------+
| SUM(daily_typing_pages) |
+-------------------------+
|                       0 |
+-------------------------+

1行(0.00秒)
Mysql

从上面的结果集中可以看出,MySQL SUM()函数会返回NULL,无论其数据类型如何,如果该列中没有任何值。

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册