日期:2014-05-17  浏览次数:20721 次

如何使用sql生成一个状态的列
    就是在显示的时候有一个列显示的是这行数据的状态,但是这个列并不存在数据库中,只有判断条件可以得出这个列是什么状态,请问这样的要求是否可行?
    就像下面这样。
        "需员工确认" == (jl=1 or (jl=2 and sj != 0)) and a.yg=0
         "需领导确认"  == jl=2 and sj = 0
          "已领导确认"  == jl = 2 and sj != 0
         "已员工确认"  == yg = 1
          
每个状态可以用其他字段表示出来,表名为A。

------解决方案--------------------
这样?



select jl,sj,yg,
       case when (jl=1 or (jl=2 and sj != 0)) and a.yg=0 then '需员工确认' 
            when jl=2 and sj = 0 then '需领导确认'
            when jl = 2 and sj != 0 then '已领导确认'
            when yg = 1 then '已员工确认' end sta
from A



------解决方案--------------------
学习了