MySQL语句由if语句提供

时间:2014-04-22 08:00:01

标签: mysql sql

我的MySQL表中有3列类型 sum custom_sum ,其中custom_sum可以为空,我仍然坚持修改查询

SELECT `type`, SUM(`sum`) FROM `localhost-test` GROUP BY `type`

如果 custom_sum 为空,我需要在SUM()中使用总和,如果不是,则使用 custom_sum 。 是否可以根据mysql中的“if”语句将不同的列相加?

1 个答案:

答案 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`