select id,order from table order by decode(id,0,999999999,id);

解决方案 »

  1.   

    select * from yourtable
    order by decode(order_field,0,100000,order_field),id注:100000是一个比你目前order都大的数
    字段名不能用order,这是oracle的保留字
      

  2.   

    to  Lastdrop(空杯):
    能给解释一下decode吗?
      

  3.   

    select * from table_name where order_name<>0 order by order_name
    union
    select * from table_name where order_name=0 order by id;decode(col,1,col,null)
    相当于:
    if col=1 then
    --输出col值
    else
    --null值
    end if;
      

  4.   

    select * from table_name where order_name<>0 group by order_name,id
    union
    select * from table_name where order_name=0 group by id,order_name;呵呵,union不支持order by
      

  5.   

    beckham:union 真的不支持order by 吗?
    select * from table A order by decode(A.order,0,A.id,A.order);
    blackcourser(黑骏马)你先试试,如果不行,你就将上面选出来的数据放到另一张表B中,然后在:
    select * from B where B.order<>0
    union
    seledt * from B where B.order-0
      

  6.   

    Lastdrop(空杯) 的很好使,我只想知道为什么这么写:)谢谢各位了!