关闭

oracle的查询数据表(五)

标签: oracle
172人阅读 评论(0) 收藏 举报
分类:

排序
通过在查询结果中应用排序,可以使得查询的结果顺序按照指定的顺序进行排序,在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

这里写图片描述

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:88229次
    • 积分:2469
    • 等级:
    • 排名:第15604名
    • 原创:156篇
    • 转载:17篇
    • 译文:0篇
    • 评论:12条
    文章分类
    最新评论