select case AboutId when 1 then 0 else AboutId=(select * from adv ad where ad.AboutId>AboutId and ifuer=1) end  case AboutId when 2 then 1 end as AboutId,Id,classcode from adv where  RanFlag=1 and ifuse=1 可以这样写吗有些乱,请大家帮忙修改一下

解决方案 »

  1.   

    select 
    case AboutId when 1 then 0 
    case AboutId when 2 then 1 
    else 
    AboutId=(select count(*) from adv ad where ad.AboutId>AboutId and ifuer=1) end as boutId,
    Id,classcode 
    from adv 
    where  RanFlag=1 and ifuse=1 可以这样写吗
    顺序写反了,select *处有错误
      

  2.   

    select 
    case AboutId 
    when 1 then 0 
    when 2 then 1 
    else 
    (select count(*) from adv ad where ad.AboutId>AboutId and ifuer=1) end as boutId,
    Id,classcode 
    from adv 
    where  RanFlag=1 and ifuse=1