MySQL:添加一列为NULL值的列

时间:2019-10-15 07:45:22

标签: mysql sql

这是我的查询:

SELECT (contract_value + amendment_value) AS total_value
FROM contracts
ORDER BY total_value DESC

当我运行它时,每一行的结果为NULL。为什么会这样?

每行都具有contract_valueamendment_value,但不能同时具有两者。没有值的地方为NULL。这可能是问题吗? (我在文档中找不到任何建议)。如果是这样,我该如何解决?

2 个答案:

答案 0 :(得分:3)

使用COALESCE

SELECT
    COALESCE(contract_value, amendment_value) AS total_value
FROM contracts
ORDER BY total_value DESC;

答案 1 :(得分:1)

您可以使用coalesce()-由于两个值中的任何一个都为null,所有值都显示为null-如果值为null,则任何计算都将返回null,因此在这种情况下,您必须将null替换为0

SELECT coalesce(contract_value,0) + coalesce(amendment_value,0) AS total_value
FROM contracts
ORDER BY total_value DESC