我的MySQL表中有3列类型, sum 和 custom_sum ,其中custom_sum可以为空,我仍然坚持修改查询
SELECT `type`, SUM(`sum`) FROM `localhost-test` GROUP BY `type`
如果 custom_sum 为空,我需要在SUM()
中使用总和,如果不是,则使用 custom_sum 。
是否可以根据mysql中的“if”语句将不同的列相加?
答案 0 :(得分:3)
如果custom_sum
值为null
:
SELECT
`u.type`,
SUM(COALESCE(`custom_sum`,`sum`))
FROM
`localhost-test`
GROUP BY
`type`
如果custom_sum
值为empty
(==''
):
SELECT
`u.type`,
SUM(CASE WHEN `custom_sum` = '' THEN `sum` ELSE `custom_sum` END)
FROM
`localhost-test`
GROUP BY
`type`