select * from test where col=... 
union all
select * from test where col<>... order by id desc ;

解决方案 »

  1.   

    GOOD
    select * from test where col=... 
    union all
    select * from test where col<>... order by id desc ;
      

  2.   

    假如让2显示在第一行上
    select * from tabname order by decode(id,2,-1,id) desc;
      

  3.   

    select * from tabname order by decode(id,2,-1,id) desc;
    decode 的用法变通的太妙了
      

  4.   

    不知道这个order by内部是怎么排序的,还有加上个desc以后又会怎么样呢,decode(id,2,-1,id) 里面的不用-1,用其他的可以吗?
      

  5.   

    如果,order by 1,或者order by -1代表什么意思啊。有人可以告诉我吗?
      

  6.   

    order by 1与-1没什么意义
      

  7.   

    order by 1表示按select子句中的第一个字段进行排序,不管他是什么。
    一般用在union时。
    比如
    select col1,col2,col3 from a
    union 
    select col4,col5,col6 from b
    order by 1;
    是按union之后的结果集的第一个字段来进行排序。
    order by -1没见过。
    另外你注意bobo的写法不是代表着order by 1 or order by -1。
    你不能把值代入算出这个结论,那是一个整体。
    既如果等于2,当作-1来参与排序,如果不等于2,则按原ID参与排序。