如何将 MySQL COALESCE() 函数与 MySQL SUM() 函数一起使用来自定义输出?
mysqlmysqli database更新于 2025/5/22 16:44:17
当 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)
当我们尝试查找"本田集团"报价的总投标价值时,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’输入的页面总数时,MySQL SUM() 函数返回 0,而‘Mohan’这个名字并不在‘Name’列中 −
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,无论其数据类型如何。
相关文章
有用资源
mysql 参考教程 - 该教程包含有关 mysql 的更多信息:https://www.cainiaomax.com/mysql/

