我正在尝试选择列中的总值。当列中没有数据时,语句返回 NULL
.
我想更换退货的 NULL
以0.00为单位。
我试图在我的sql语句中实现ifnull函数(我使用的是mysql)。当我执行语句时 NULL
.
有人知道我怎么解决这个问题吗?
以下是我的完整声明:
SELECT CONCAT('€ ', FORMAT(SUM(IFNULL(mutations,'0.00')),2)) AS total
FROM scu_statement
WHERE type='2'
表格:
CREATE TABLE `scu_statement` (
`id` int(11) NOT NULL,
`type` int(11) NOT NULL,
`mutations` decimal(50,2) NOT NULL,
`status` int(11) NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
2条答案
按热度按时间67up9zun1#
如果返回集没有行,sum()返回null,那么只需添加ifnull函数来检查sum是否返回null
验证示例:
sum函数忽略空值。您可以通过以下方式进行验证:
nwo49xxi2#
这个
SUM()
函数忽略空值,并将所有非空值相加。原因有两个
SUM()
可能返回null:所有行都有空值。
找不到行。
自从你的
mutations
列为NOT NULL
,这不是第一个原因,因此是因为找不到行。要防止null,您需要调用
IFNULL
外面SUM
: