id name      value
1  *张山      233
2  *李四      777
3   张山      555
4   李四      999
5  **张山     123我要人结果如下:id name      value
5  **张山     123
1  *张山      233
3   张山      555
2  *李四      777
4   李四      999也就是不计*将相同人名排在一起
哪位高人可以帮帮去啊,,,,

解决方案 »

  1.   

    create table order_test(
      id number,
      name varchar2(10),
      value number
      );
      
      insert into order_test values(1,'*张山',233);
      insert into order_test values(2,'*李四',777);
      insert into order_test values(3,'张山',555);
      insert into order_test values(4,'李四',999);
      insert into order_test values(5,'**张山',123);
      
      commit;
      
      
      select * from order_test;
      
      select o.*
        from order_test o
       order by replace(o.name,'*',''),o.value;        ID NAME            VALUE
    ---------- ---------- ----------
             2 *李四           777
             4 李四            999
             5 **张山            123
             1 *张山             233
             3 张山              555
      

  2.   

    完全是mantisXF(枫の叶)的思想,不过应该加上desc
    select o.*
        from order_test o
       order by replace(o.name,'*','') desc,o.value;