在MySQL中,我想做一个select并得到一个和,但是乘法应该取决于其中一个列的值。所以这是常规声明:
SELECT col1*col2 AS sum
但是if col2 < 0
,col2应该取0作为值,所以类似于:SELECT col1*(col2 < 0 ? 0 : col2) AS sum
我可以在MySQL中这样做吗?
答案 0 :(得分:6)
任何乘以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
答案 1 :(得分:1)
在一个非常紧凑和优雅的解决方案
SELECT IF(col2>0,col1*col2,0) as SUM;