[待解决问题] 关于case的用法
提问时间: 2008-03-28 17:40
悬赏分:10 该问题已到期 浏览:230 次

我写了个这样的T_SQL语句

select sid,subject,content,pubdate,promulgator=
   case
    when exists(select * from snm_scheme where did>0) then (select name from  snm_department where snm_department.did=snm_scheme.did and snm_scheme.did>0)
    when exists(select * from snm_scheme where cid>0) then (select name from snm_Center where   snm_center.cid=snm_scheme.cid   and snm_scheme.cid>0) 
    else
     (select username from snm_user where snm_user.uid=snm_scheme.uid)
   end

from  snm_scheme

我想给promulgator字段筛选后都有数据填充.现在的问题是 获得的promulgator 列结果中只有满足第一个when 条件的数据填充,这是怎么回事啊?

有没有办法能解决


提问者:yeyang - 菜鸟二级
所有回答(1)
你想要的是不是这样的?

select sid,subject,content,pubdate,promulgator=
   case
    when did>0 then (select name from  snm_department where snm_department.did=snm_scheme.did and snm_scheme.did>0)
    when cid>0 then (select name from snm_Center where   snm_center.cid=snm_scheme.cid   and snm_scheme.cid>0) 
    else
     (select username from snm_user where snm_user.uid=snm_scheme.uid)
   end

from  snm_scheme
1个月前   回答者:deerchao - 老鸟四级
1个月前   yeyang :
对 就是这样 当时脑袋都糊了哦  这么简单的都没有想到 
呵呵 谢谢了  deerchao
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除