在一个表请用一条sql语句查出所有的数据,查询结果先按照指定用户类型排序,然后按照id升序排序

解决方案 »

  1.   

    select * from t order by 用户类型, id
      

  2.   

    最后排序:1  admin
                         7  admin
                         3  user
                          4user
                          6user
                          2super user
                           5super user
      

  3.   

    create table aaa(
    did number(2),
    dname varchar2(10)
    );
    insert into aaa values(1,'admin');
    insert into aaa values(2,'super user');
    insert into aaa values(3,'user');
    insert into aaa values(4,'user');
    insert into aaa values(5,'super user');
    insert into aaa values(6,'user');
    insert into aaa values(7,'admin');
      

  4.   


    SQL> 
    SQL> create table aaa(
      2  did number(2),
      3  dname varchar2(10)
      4  );
    Table created
    SQL> begin
      2      insert into aaa values(1,'admin');
      3      insert into aaa values(2,'super user');
      4      insert into aaa values(3,'user');
      5      insert into aaa values(4,'user');
      6      insert into aaa values(5,'super user');
      7      insert into aaa values(6,'user');
      8      insert into aaa values(7,'admin');
      9  end ;
     10  /
    PL/SQL procedure successfully completed
    SQL> select * from aaa
      2  order by decode(dname,'admin',1,'user',2,'super user',3) , did  ;
    DID DNAME
    --- ----------
      1 admin
      7 admin
      3 user
      4 user
      6 user
      2 super user
      5 super user
    7 rows selected
    SQL> drop table aaa ;
    Table droppedSQL> 
      

  5.   


    这个估计是作业,或者是两个系统中间数据的传输,现实的业务系统肯定会有另一个维表,记录这些 admin user ,维表中有排序字段;