oracle的查询数据表(五)

排序
通过在查询结果中应用排序,可以使得查询的结果顺序按照指定的顺序进行排序,在select子句中可以使用order by子句排序,可以为order by子句指定一个表达式或一个列名作为排序的条件

注意:order by 子句必须是select语句的最后一个子句,否则select语句将会执行失败

    select expr from table [where condition(s)] [order by {column,expr} [asc|desc]];

语法中的order by 关键字指定要对结果进行排序,可选择的asc和desc表示排序的方向,默认值为asc,表示按照升序排序,如果未指定任何排序方向,则使用asc,否则使用desc指定降序排序

例如要查询emp表按照empno进行排序

select * from emp order by empno

这里写图片描述

由于empno是数字类型,因此查询的结果是按照数字值从小到大进行排序的,下面是其他数据类型的排序规则,
1、日期类型:较早的日期显示在前面
2、字符类型:依字母顺序显示
3、空值:升序排序时显示在最后,降序排序时显示在最前面

例如下面的select语句按照ename进行降序处理,在order by子句中使用了desc关键字

select * from emp order by ename desc

这里写图片描述

可以看到降序排序后,员工名称果然是按首字母从26个字母表中的最后排序到最前

下面的语句获取了部门编号为20的员工列表,先用员工编号进行排序,然后按员工名称进行倒序排序

select * from emp order by empno,ename desc

这里写图片描述

除了直接指定列名之外,还可以根据select语句的字段列表的索引顺序指定排序,例如下面的语句将根据select语句中第4个字段mgr列值进行排序

select * from emp order by 4 desc

这里写图片描述

如果指定一个不在select语句中的索引号,oracle将提示异常,例如下面的语句按照一个并不存在的索引号进行排序

select * from emp order by 10 desc

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值