日期:2014-05-18  浏览次数:20341 次

这个语句如何写
select   visible,ydqx       =     case      
when   post_id   =1     then   4  
  when   post_id   =2   then   4  
  when   ui.Department_id=ar.Department_id     then   3
  ---when     user_id=10004               then           1
  ---when     user_id   <> 10004           then           2
else   2   end           from   userinfo     ui         ,     article     ar--
where     id=4114   and   user_id=10004
and     ydqx   > =visible

ydqx     是表中没有的列,在 'and     ydqx   > =visible '中总是报:列名   'ydqx '   无效。

不知道该如何在where   后引用   ydqx

------解决方案--------------------
計算列不能直接拿來使用,必須寫全

select visible,ydqx = case
when post_id =1 then 4
when post_id =2 then 4
when ui.Department_id=ar.Department_id then 3
---when user_id=10004 then 1
---when user_id <> 10004 then 2
else 2 end from userinfo ui , article ar--
where id=4114 and user_id=10004
and (case
when post_id =1 then 4
when post_id =2 then 4
when ui.Department_id=ar.Department_id then 3
---when user_id=10004 then 1
---when user_id <> 10004 then 2
else 2 end) > =visible