MySQL COALESCE()函数如何与MySQL SUM()函数一起使用以自定义输出?

当MySQLSUM()函数获得一列没有值的参数时,它将返回NULL而不是0作为输出。但是,如果我们要自定义此输出以将0显示为输出,则可以使用MySQLCOALESCE()函数,该函数接受两个参数,如果第一个参数为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 rows in set (0.00 sec)

SUM()当我们尝试查找“ Honda Group”所引用的总投标值时,MySQL函数返回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)

现在,SUM()当我们使用COALESCE函数SUM()来查找由'Mohan'键入的页面总数时,MySQL函数返回0 ,该名称不在'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)

从上面的结果集中,很明显,SUM()如果该列中没有值,则与数据类型无关,MySQL函数将返回NULL。

以上是 MySQL COALESCE()函数如何与MySQL SUM()函数一起使用以自定义输出? 的全部内容, 来源链接: utcz.com/z/326666.html

回到顶部