Oracle系列:(7)order by子句

发布时间:2020-07-01 23:21:56 作者:lsieun
来源:网络 阅读:276



查询员工信息(编号,姓名,月薪,年薪),按月薪升序排序,默认升序,如果月薪相同,按oracle内置的校验规则排序

select empno,ename,sal,sal*12 
from emp 
order by sal asc;


查询员工信息(编号,姓名,月薪,年薪),按月薪降序排序

select empno,ename,sal,sal*12 
from emp 
order by sal desc;


查询员工信息,按入职日期降序排序,使用列名

select empno,ename,sal,hiredate,sal*12 "年薪" 
from emp
order by hiredate desc;


order by后面可以跟列名、别名、表达式、列号(从1开始,在select子句中的列号)

列名:

select empno,ename,sal,hiredate,sal*12 "年薪" 
from emp
order by hiredate desc;


别名: 

select empno,ename,sal,hiredate,sal*12 "年薪" 
from emp
order by "年薪" desc;


表达式:

select empno,ename,sal,hiredate,sal*12 "年薪" 
from emp
order by sal*12 desc;


列号,从1开始:

select empno,ename,sal,hiredate,sal*12 "年薪" 
from emp
order by 5 desc;

Oracle系列:(7)order by子句


查询员工信息,按佣金升序或降序排列,null值看成最大值

select * from emp order by comm desc;

Oracle系列:(7)order by子句

Oracle系列:(7)order by子句


查询员工信息,对有佣金的员工,按佣金降序排列,当order by 和 where 同时出现时,order by 在最后

select *
from emp
where comm is not null
order by comm desc;

Oracle系列:(7)order by子句


查询员工信息,按工资降序排列,相同工资的员工再按入职时间降序排列

select *
from emp
order by sal desc,hiredate desc;
select *
from emp
order by sal desc,hiredate asc;

注意:只有当sal相同的情况下,hiredate排序才有作用


查询20号部门,且工资大于1500,按入职时间降序排列

select *
from emp
where (deptno=20) and (sal>1500)
order by hiredate desc;

Oracle系列:(7)order by子句


下面的字符串'30'可以隐式转换为数字

select * from emp where deptno in (10,20,30,50,'30');

Oracle系列:(7)order by子句

select * from emp where deptno in (10,20,30,50,'a');

Oracle系列:(7)order by子句



推荐阅读:
  1. Oracle order by子句对NULL的排序
  2. Oracle系列:(31)Oracle SQL语句优化

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

oracle 子句 %d

上一篇:网易cetus之读写分离

下一篇:从 DevOps 到 Serverless:通过“不用做”的方式解决“如何更高效做”的问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》