6000
5000
4000
07-005
05-001
04-001
03-002这样的数据我想大于40000的安ASC排序,小于4000的安DESC排序
请问我怎么写语句?谢谢。

解决方案 »

  1.   

    select * from (select sal from emp where sal > 40000 order by sal asc) t1
    union all
    select * from (select sal from emp where sal < 4000 order by sal desc) t2
      

  2.   

    你的描述缺乏4000-40000这段数据怎么排序的说明select * from 表
    order by (case when 列>40000 
                   then 1 
                   when 列<4000
                   then 2
               end
             )
             ,(case when 列>40000 
                   then -列 
                   when 列<4000
                   then num
               end
             ) desc
      

  3.   

    因为ID中包含40000,50000或则05-00015789之类的数据elect * from 表
    order by (case when id>40000
    then id
    when id<4000
    then id
    end
    )
    asc
    ,(case id 列>40000
    then id
    when id<4000
    then id
    end
    ) desc不对啊。
      

  4.   

    我写成ORDER BY (CASE WHEN ID〉40000 THEN ID ASC ELSE ID DESC),
    系统报错的。
      

  5.   


    ORDER BY (CASE WHEN ID〉40000 THEN ID ASC ELSE ID DESC END)
      

  6.   

    select * from (
    select * from(
    select * from TABLE
    where ..
    order by col desc
    ) a
    union all
    select * from(
    select * from TABLE
    where ..
    order by col asc
    ) b
    )