gpt4 book ai didi

MySQL IFNULL 仍然返回 NULL

转载 作者:行者123 更新时间:2023-11-29 05:51:15 25 4
gpt4 key购买 nike

我正在尝试选择 mutations 列中的总值。当列中没有数据时,语句返回 NULL

我想用 0.00 替换返回的 NULL

我正在尝试在我的 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;

最佳答案

如果返回集没有行,SUM() 返回NULL 所以只需添加IFNULL 函数来检查SUM 返回 NULL

SELECT CONCAT('€ ', FORMAT(IFNULL(SUM(mutations), 0),2)) AS total
FROM scu_statement
WHERE type='2'

验证示例:

SELECT CONCAT('€ ', FORMAT(IFNULL(SUM(mutations), 0),2)) AS total
FROM (SELECT * FROM (SELECT 1 AS mutations) as t1 LIMIT 0) as q

SUM 函数忽略 NULL 值。您可以通过这种方式验证它:

SELECT SUM(X)
FROM (
SELECT 1 AS X
UNION SELECT 10 AS X
UNION SELECT NULL AS X
) AS q

关于MySQL IFNULL 仍然返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53918298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com