【发布时间】:2011-02-05 14:05:42
【问题描述】:
在 MySQL 中,我想做一个选择并得到一个总和,但乘法应该取决于其中一列的值。所以这是常规语句:
选择 col1*col2 作为总和但是if col2 < 0, col2 应该取 0 作为值,所以类似于:SELECT col1*(col2 < 0 ? 0 : col2) AS sum
我可以在 MySQL 中执行此操作吗?
【问题讨论】:
标签: mysql
在 MySQL 中,我想做一个选择并得到一个总和,但乘法应该取决于其中一列的值。所以这是常规语句:
选择 col1*col2 作为总和但是if col2 < 0, col2 应该取 0 作为值,所以类似于:SELECT col1*(col2 < 0 ? 0 : col2) AS sum
我可以在 MySQL 中执行此操作吗?
【问题讨论】:
标签: mysql
任何乘以 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
【讨论】:
在一个非常紧凑和优雅的解决方案中
SELECT IF(col2>0,col1*col2,0) as SUM;
【讨论】: