select b.* from 表1 a,表2 b
where a.enterpriseid=b.enterpriseid
order by case when a.enterpriseorder =0 then 2147483647 else a.enterpriseorder end)

解决方案 »

  1.   

    select A.* from 表2 as A left join 表1 as B on A.enterpriseid = B.enterpriseid
     order by 
     (case when A.enterpriseorder =0 then 2147483647 else A.enterpriseorder end)
      

  2.   

    select * from 表2 a join 表1 on b on a.enterpriseid = b.enterpriseid
    order by (case when a.enterpriseorder =0 then 2147483647 else a.enterpriseorder end)
      

  3.   

    select b.* from 表1 a,表2 b
    where a.enterpriseid=b.enterpriseid
    order by case when a.enterpriseorder =0 then 2147483647 else a.enterpriseorder end)
      

  4.   

    多谢楼上们的解答
    现在有个问题是:
    我想把enterpriseorder=0的显示在前面,然后不等于0的按降序排
    谢谢
      

  5.   

    select * from table1 where enterpriseorder=0 
    union all
    select * from table 1 where enterpriseorder<>0 order by enterpriseorder desc
      

  6.   

    因为我是采用:
    select b.* from 表1 a,表2 b
    where a.enterpriseid=b.enterpriseid
    order by case when a.enterpriseorder =0 then 2147483647 else a.enterpriseorder end)
    我想:能否通过直接修改orderby后面的东东搞定?
      

  7.   

    select field1,field2,...,case when enterpriseorder=0 then 214783647 else enterpriseorder into #temp from 表1 select b.* from #temp a,表2 b
    where a.enterpriseid=b.enterpriseid
    order by a.enterpriseorder descdrop table #temp
      

  8.   

    select b.* from 表1 a,表2 b
    where a.enterpriseid=b.enterpriseid
    order by case when a.enterpriseorder=0 then 2147483647 else a.enterpriseorder end desc