【问题标题】:MySQL multiplication in select depending on value of column选择中的MySQL乘法取决于列的值
【发布时间】:2011-02-05 14:05:42
【问题描述】:

在 MySQL 中,我想做一个选择并得到一个总和,但乘法应该取决于其中一列的值。所以这是常规语句:

选择 col1*col2 作为总和

但是if col2 < 0, col2 应该取 0 作为值,所以类似于:SELECT col1*(col2 < 0 ? 0 : col2) AS sum

我可以在 MySQL 中执行此操作吗?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    任何乘以 0 都是 0,所以它比你要求的逻辑简单一点:

    SELECT CASE WHEN COL2 > 0 THEN COL1 * COL2 ELSE 0 END AS `sum`...
    

    http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html

    【讨论】:

    • 谢谢,我一直在寻找那种操作方法,但不知道在手册中的何处查找!
    【解决方案2】:

    在一个非常紧凑和优雅的解决方案中

    SELECT IF(col2>0,col1*col2,0) as SUM;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-13
      • 1970-01-01
      • 1970-01-01
      • 2011-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多