在mysql查询中使用嵌套case条件

时间:2013-12-25 12:14:49

标签: mysql

if(qtype==3)
  column=somecolumn;
else if(qtype==2)
    {
      if(open==0)
      column=anycolumn;
      else
      column =somecolumn;
    }
else{
acolumn,bcolumn,ccolumn  //this else----|
}                            |
             ----------------|

我想在我的mysql查询中实现上面嵌套的if-else条件。其中条件将基于其中一个列。这是我到目前为止所做的。

select qtype,open,(Case when qtype=2 then answer
Else (Case when qtype=3 then 
                          (Case when open=0 then somecolumn  
                           Else othercolumn End) End)

Else....//how to implement this else here)

我很困惑如何整合最后的其他部分?

由于

2 个答案:

答案 0 :(得分:0)

格式是正确的,但你在开头时将if和else伪造的代码切换为2和3:

select qtype,open,(Case when qtype=3 then answer
Else (Case when qtype=2 then 
                          (Case when open=0 then somecolumn  
                           Else othercolumn End) End))

答案 1 :(得分:0)

查看案例syntax,以下是我提出的建议。

CASE qtype
    WHEN 3 THEN column=somecolumn;
    WHEN 2 THEN (CASE open WHEN 0 THEN column=anycolumn ELSE column = somecolumn)
    ELSE othercolumn
END CASE