用order by ID排序的输出结果是1,2,3,4,5
我想让他变成2,3,4,5,1或者3,4,5,1,2 
有哪些方法啊!帮帮忙,在线等!

解决方案 »

  1.   

    增加一张表,设定每个值的顺序。然后用这张表在查询中关联。
    如果值少,可以用decode函数生成一个专门用于排序的字段。
      

  2.   

    --排序为3,4,5,1,2
    order by decode(id,'1',2,'2',2,1), id--排序为2,3,4,5,1
    order by decode(id,'1',2,1), id
      

  3.   

    或者也可以用笨方法:Union all
      

  4.   

    select *
    from TableName order by decode(Sign(2-ID),-1,1,2), ID
      

  5.   

    select f.* from (select h.* from (select rownum r,c.* from TableName  c) h where r >=3 and  r<8) f
    union all
    select r.* from (select h.* from (select rownum r,c.* from TableName   c) h where r >=1 and  r<3) r 
    试试看!