Oracle数据库基础04-排序

1.排序初步

要在一个不明确顺序的查询结果中对行进行排序,可以使用ORDER BY子句,它必须位于SQL语句的最后。指定一个表达式,或者一个字段名,作为排序条件。ORDER BY子句的语法形式如下:

ORDER BY {column,expr,number}[ASC|DESC]

其中,ORDER BY{column,expr,number}指定需要排序的字段、表达式或序号,ASC以升序排列,DESC以降序排列,默认以升序排序。

针对不同的数据类型,其默认升序含义如下:

  • 对于数字类型,小的值在前面显示。
  • 对于日期类型,早的日期在前面显示。
  • 对于字符类型,依字母顺序显示,a在前,z在最后。
  • 对于空值,升序排序时显示在最后,降序排序时显示在最前面。

如果要查询出员工表的职位编号、名字和薪水信息,且按薪水从低到高的顺序进行排序显示,其SQL语句如下:

select empno,ename,sal from emp order by sal;

结果:

如果查询编号、姓名、雇佣日期,按日期降序进行排序,其SQL语句如下:

select empno,ename,hiredate from emp order by hiredate desc;

结果:

2.排序进阶

上面使用了字段名进行排序,在ORDER BY子句中,不仅可以使用字段,还可以使用字段别名、表达式或序号进行排序。

select empno,ename,sal,hiredate as myDate from emp order by myDate desc;

结果:

如果要使用表达式进行排序,则可以将OREDER BY子句改为ORDER BY sal*12,表示=根据每个人的年薪进行排序。

例如:select id,ename,sal,hiredate from emp order by sal*12;

还可以使用数字来确定字段进行排序;如:select empno,ename,sal,hiredate from emp order by 3;

结果:

其中3指定的是第三个字段,即sal;

3.多重排序

所谓多重排序,也叫多列排序,即先以一个字段对查询结果进行排序,然后在这个排序的基础上再对另一个字段进行排序,最终显示经过多次排序后的查询结果。其中ORDER BY列表顺序就是好排序顺序。

在ORDER BY子句中,多个指定的字段名之间用逗号分开。如果想要倒序排序一个字段,在该字段名后面增加DESC。可以用没有包括在SELECT子句中的字段排序,但排序的字段必须是表中的字段。

针对员工表,需要显示雇员的职位编号、名字和薪水信息。先用职位编号顺序排序,再用薪水降序排序,其SQL语句语句如下:

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

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值