来自不同列的SQL总和

时间:2013-01-09 17:03:11

标签: mysql

我的出价表包含两个出价价格列 bidprice1 bidprice2 。并且所有用户都有 bidprice1金额,有些用户还有 bidprice2金额

我想基于sum(bidsprice2)计算bidsprice2,如果某些用户为空bidsprice2,则基于其bidsprice1

如何编写此求和查询?

2 个答案:

答案 0 :(得分:1)

使用COALESCE()返回第一个非NULL参数。这可以直接包含在聚合SUM()内。这有利于在需要时添加其他列。

SELECT
  /* SUM() based on bidsprice2 if non-null, bidsprice1, or finally 0 if both NULL */
  SUM(COALESCE(bidsprice2, bidsprice1, 0)) AS your_sum
FROM yourtable

答案 1 :(得分:0)

SUM(CASE WHEN bidsprice2 IS NULL THEN bidsprice1 ELSE bidsprice2 END)

在MySQL中