如果查询在MySql中返回空值,如何设置0?

时间:2016-03-11 14:20:19

标签: mysql sql database count rdbms

我不是很喜欢数据库而且我有以下问题。

我有这样的查询:

SELECT sum(intervento.IMP_IND_POS_AFF_MIN) 
FROM TID023_INTERVENTO intervento
INNER JOIN TID018_ENTEBENEFICIARIO enteBeneficiario 
   ON(enteBeneficiario.COD_ENT = intervento.COD_ENT)
INNER JOIN anagrafiche.TPG1029_PROVNUOIST provNuovIst 
   ON (provNuovIst.COD_PRV_NIS = enteBeneficiario.COD_PRV_NIS)
WHERE intervento.COD_TIP_BAN=1 AND intervento.IMP_IND_POS_AFF_MIN is not null;

此查询工作正常,但正如您所看到的,它不会检索一组行但返回由 sum()函数获取的数字。

在某些情况下,这个数字可能是 null ,在这种情况下我不希望此查询返回 null (因为它在我的应用程序中产生问题)但在这种情况必须返回数值 0

我知道MySql提供了一个 ifnull()函数来做这样的事情,这里的参考文献:

http://www.w3schools.com/sql/sql_isnull.asp

但在这个exalmpe中,它用在桌子上的单个字段上。如何在查询输出中执行此类操作?

2 个答案:

答案 0 :(得分:7)

使用:

SELECT IFNULL(SUM(intervento.IMP_IND_POS_AFF_MIN), 0)

这意味着IFNULL可以应用于SUM返回的值,其方式与应用于表字段的方式相同。

答案 1 :(得分:3)

你仍然可以使用IFFNULL():

SELECT IFNULL(SUM(...), 0 ) FROM ... 

另请参阅:Return 0 if field is null in MySQL