我怎么能加/减?

时间:2013-03-14 15:21:07

标签: mysql sql

这一直让我感到疑惑,

让我说我有这种情况:

select (...long sub query..) - (...long sub query..)

我希望将-置于条件状态,这意味着有时它会-,有时会+,是否有一种简单的方法可以做到这一点? 我知道的方式是:

select if(condition,(...long sub query..) - (...long sub query..),
   (...long sub query..) + (...long sub query..))

这使得查询更难以阅读和维护,或者将其放入存储过程中,我宁愿不这样做。

我可以将算术运算放在某种var中并以某种方式连接吗?

我想要实现的目标是:

select (...long sub query..) if(condition,-,+) (...long sub query..)

3 个答案:

答案 0 :(得分:5)

不,你不能。

但是,您可以改为使用乘法:

(...) + IF(..., -1, +1) * (...)

答案 1 :(得分:0)

您可以将每个子查询保存在变量中,然后使用IF中的变量。

SELECT @a:=(...long sub query..), @b:=(...long sub query..),
  IF(condition, @a-@b, @a+@b) AS result

MySQL变量的文档:http://dev.mysql.com/doc/refman/5.0/en/user-variables.html

答案 2 :(得分:-1)

没有太多理解您的问题,但您可以将任何字符存储在字符串或char变量中并使用它在您的语句中连接