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

讲哩滴 2016-09-22 04:44:06
在一个表请用一条sql语句查出所有的数据,查询结果先按照指定用户类型排序,然后按照id升序排序
...全文
2091 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 2016-09-22
  • 打赏
  • 举报
回复
引用 10 楼 ghx287524027 的回复:
要是数据很大的话,这种需求很坑的 最好就是再增加一个字段,用来指定排序
这个估计是作业,或者是两个系统中间数据的传输,现实的业务系统肯定会有另一个维表,记录这些 admin user ,维表中有排序字段;
讲哩滴 2016-09-22
  • 打赏
  • 举报
回复
坑?这话怎么说?可以简单说说?
讲哩滴 2016-09-22
  • 打赏
  • 举报
回复
感谢,我也做出来了!O(∩_∩)O谢谢
ghx287524027 2016-09-22
  • 打赏
  • 举报
回复
引用 9 楼 wmxcn2000 的回复:

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 dropped

SQL> 
要是数据很大的话,这种需求很坑的 最好就是再增加一个字段,用来指定排序
卖水果的net 2016-09-22
  • 打赏
  • 举报
回复

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 dropped

SQL> 
讲哩滴 2016-09-22
  • 打赏
  • 举报
回复
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');
讲哩滴 2016-09-22
  • 打赏
  • 举报
回复
用户表里的数据与顺序都是混乱的,按照要求排序出结果
卖水果的net 2016-09-22
  • 打赏
  • 举报
回复
有具体的数据吗,给出一些来
ghx287524027 2016-09-22
  • 打赏
  • 举报
回复
引用 4 楼 lms279151398 的回复:
最后排序:1 admin 7 admin 3 user 4user 6user 2super user 5super user
你这个顺序是怎么出来的?用户根据什么定了这么一个顺序呢?
讲哩滴 2016-09-22
  • 打赏
  • 举报
回复
最后排序:1 admin 7 admin 3 user 4user 6user 2super user 5super user
ghx287524027 2016-09-22
  • 打赏
  • 举报
回复
引用 2 楼 lms279151398 的回复:
这个我试过了、还不行
描述详细一些,你这个指定用户类型是什么样的
讲哩滴 2016-09-22
  • 打赏
  • 举报
回复
这个我试过了、还不行
卖水果的net 2016-09-22
  • 打赏
  • 举报
回复
select * from t order by 用户类型, id

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧