SQL中的条件更新

时间:2011-09-02 18:31:50

标签: mysql sql sqlite

我想在查询中输入条件结果。我有一个名为co1的列。我怎么才能得到

15 when c1 > 50
2  when c1 > 20
0 otherwise

如果我使用

CASE WHEN (co1>50) THEN 15 ELSE 0 END

但是当我添加第3个子句时,MySQL会返回错误

CASE WHEN (co1>50) THEN 15 ELSE  WHEN (co1>20) THEN 2 ELSE 0 END

第二种情况有什么问题?提前致谢

2 个答案:

答案 0 :(得分:6)

ELSE应该只在最后一个条款中。使用此:

CASE WHEN (co1>50) THEN 15 WHEN (co1>20) THEN 2 ELSE 0 END

答案 1 :(得分:0)

当你说ELSE时 - 你的意思是这是最后一个条件。所以它应该是

CASE  
    WHEN (co1>50) THEN 15 
    WHEN (co1>20) THEN 2 
   ELSE 0 
END