选择虚拟'列,如果另一列具有值或在SQL视图中为null

时间:2015-05-21 14:53:07

标签: mysql sql

我想在视图中选择ALWAYS列,并使用CASES进行设置。 例如:

SELECT isDone
,doneN

from...

我必须以这种方式设置isDone:

if done is 1 isDone is 'yes'
if done is 0 isDone is 'no'

(doneN是来自另一个表的列,isDone不会存在于其他表中,所以它是"虚拟"列)

谢谢你的建议

2 个答案:

答案 0 :(得分:2)

这是你想要的吗?

select (case when doneN = 1 then 'yes' else 'no' end) as isDoneN
. . . 

答案 1 :(得分:1)

您没有指定'done'是否始终为0或1.如果有更多值或您想要捕获其他值,请使用以下内容:

select (case when done = 1 then 'yes' 
             when done = 0 then 'no' 
             else '' end) as isDone 
, doneN
from ...

如果'done'被约束为0或1,则可以使用:

select (case when done = 1 then 'yes' 
             else 'np' end) as isDone 
, doneN
from ...