【发布时间】:2017-06-08 02:43:47
【问题描述】:
当我调试并查看我的查询的一些测试时,我注意到我的一些结果具有 NULL 值。我想根据他们的类型返回它们或将它们视为 0 或 0.00 的值,就像高级一样。
我用 case 语句尝试过,但没有得到我想要的结果,即 0。
这是根据类型通过where子句确定的。
这是我的查询:
SELECT a.ID as EMPLOYEE, a.DOB as Date, a.AMOUNT as DECLARED,
(SELECT (CASE WHEN
SUM(gndsale.AMOUNT) and gndsale.ID IS NULL then "0" and gndsale.typeid = "10" else
SUM(gndsale.AMOUNT) END)
from gndsale where gndsale.ID= b.ID and
gndsale.typeid = "10" and gndsale.DOB = a.DOB) as `SENIOR DISCOUNT`
FROM
gndsale a INNER JOIN emp b ON a.ID= b.ID WHERE a.type = "22" and STR_TO_DATE(a.DOB,
'%m/%d/%Y') BETWEEN '2017-05-01' AND '2017-05-31' GROUP BY DECLARED order by STR_TO_DATE(a.DOB, '%m/%d/%Y')
这是我的结果:
我想将 Null 值设为 0
【问题讨论】:
-
查看
IFNULL()函数。 -
这是一个常见问题解答,请下次谷歌您的问题的清晰简洁的陈述。在您浏览/google 网站后:dev.mysql.com/doc/refman/5.7/en.