2011-01-26 44 views
2

我想创建一个计算的字段,如果两个值碰巧是相同的,则值增加一倍。我在变量MY中编写这个条件。我是SQL新手,所以我很抱歉。MySQL IF条件在计算字段

这里是我的尝试:

SELECT EXPERT_SCORE*MY 
IF(CONSUMER_EXPERT_SCORE_ID= CONSUMER_EXPERT_ID, 1, -1) AS MY 
FROM consumer_expert_score 
WHERE CONSUMER_EXPERT_SCORE_ID=2 OR 1; 

提前感谢!

+0

你可以请张贴一些样本数据和所需的输出? – Quassnoi 2011-01-26 19:41:30

回答

5

你想要CASE WHEN和IN()子句。

不幸的是我无法完全重写你的查询,因为你的条件是一个重言式,它总是会返回1.也许你的意思是别的吗?无论如何,我改变了一些,我认为你可能意味着:

SELECT .... 
    case when consumer_expert_id = 1 then 1 else -1 end as my 
    from consumer_expert_score 
where consumer_expert_score_id IN (2,1) 
+0

对不起,我的意思是添加一个不同的列 – Spencer 2011-01-26 19:45:08