select *,g=(select case when grade in (3,5,8) then 0 else 1 end from grade where [user]=a.[user]) from content a order by g

解决方案 »

  1. 谢谢楼上的,
    我套用你的语句,会出现找不到g字段,还有“from content a order by g”
    这里的a是什么意思?
      

  2. 转换我的语句如下:
    select id,title_c,picture1,alterdate,detailed_c,abc=(select case when grade in (3,5,8) then 0 else 1 end from grade_c where grade_c.userid=gongqiu.userid) from gongqiu where infotype=1 and statecode=1 order by abc asc,alterdate desc会提示字段abc不存在,汗,能力有限。
      

  3. select * 
    from
    (select 
    [id] c1,
    title_c c2,
    picture1 c3,
    alterdate c4,
    detailed_c c5,
    c6=(select case when grade in (3,5,8) then 0 else 1 end from grade_c where userid=A.userid)
    from gongqiu A
    where infotype=1 and statecode=1) B
    order by B.c6 asc,B.c4 desc
      


  4. 是啊,两表userid关联,表grade中的grade值为3、5、8时,表content的记录排序靠前,zl_c   思路是对的,可是我掌握不了。
      


  5. 改为:
    SQL codeselect *,(select case when grade in (3,5,8) then 0 else 1 end from grade where [user]=a.[user]) as g from content a order by g改为:
    SQL codeselect id,title_c,picture1,alterdate,detailed_c,(select case when grade in (3,5,8) then 0 else 1 end from grade_c where grade_c.userid=gongqiu.userid) as abc from gongqiu where infotype=1 and statecode=1 order by abc asc,alterdate desc
    即,用“as”替换“=”赋值。
      

类似问题 »