首页 > 解决方案 > MySQL 显示截断和求和 NULL 值

问题描述

如果 Cost 列显示NULL我如何忽略此功能并简单地显示NULL

目前,当我添加此功能时,它会忽略结果。我尝试定位 COALESCE 函数,但没有成功。

注意:如果没有这个 select 语句,它会显示所有条目,因此 JOINS 是正确的,并且结果是特定于这个函数的。

提前致谢!

TRUNCATE(SUM(Cost/2),3) AS CostPerPart

标签: mysql

解决方案


请随时提供更多信息,但这可能取决于您的结构和数据。这依赖于使用IFNULL()文档位于此处

IFNULL如果值不是则返回表达式,NULL否则返回NULL

IFNULL(expr1,expr2) 如果 expr1 不为 NULL,则 IFNULL() 返回 expr1;否则返回 expr2。


CREATE TABLE Table1
    (`id` int, `Cost` int)
;
    
INSERT INTO Table1
    (`id`, `Cost`)
VALUES
    (1, 2),
    (2, 3),
    (3, 4.5),
    (4, 6),
    (5, NULL),
    (1, 2)
;

SELECT id
       ,IFNULL(TRUNCATE(SUM(Cost/2),3), NULL) AS CostPerPart
FROM Table1
GROUP BY id;

输出:

id  CostPerPart
1   2
2   1.5
3   2.5
4   3
5   (null)

SQLFiddle


推荐阅读