Oracle从入门到精通 - 查询排序

本文介绍了Oracle数据库中查询排序的方法,包括ORDER BY子句的使用,升序和降序的设定,以及混合排序操作。强调了ORDER BY在SELECT和WHERE子句后的执行顺序,以及其对SELECT定义的别名的支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查询排序

查询排序的语法,ORDER BY子句

如果说在默认情况下进行数据查询的时候,它都会按照自然顺序(数据先后的保存顺序)
所有的自然顺序都是不可控的,所以往往都会由自己来进行排序操作
那么这个时候可以使用ORDER BY语句

SELECT [DISTINCT] * |[别名],列[别名] --③ 选出所需要的数据列
FROM 表名称 [别名] --① 确定数据来源
[WHERE 限定条件] --② 筛选数据行
[ORDER BY 排序字段 [ASC|DESC],排序字段 [ASC|DESC],...];--④数据排序

ORDER BY是在SELECT子句之后执行,那么就意味着DRDER BY可以使用SELECT子句定义的别名

对于字段排序有两种形式

  • 升序:ASC,默认不写排序也是升序
  • 降序:DESC,由高到低进行排序
--按照工资由高到低排序
SELECT * FROM emp
ORDER BY sal DESC;

排序可以在任意数据类型上进行,包括字符串、日期都可以

--按照雇佣日期由早到晚排序
SELECT * FROM emp
ORDER BY hiredate [ASC] ;
--ASC可写可不写,ASC是默认排序方式

除了可以进行单一字段的排序,也可以进行字段的混合排序操作(指的是可以进行若干个字段的排序)

--按照工资由高到低排序,如果工资相同,则按照雇佣日期由早到晚排序
SELECT * FROM emp
ORDER BY sal DESC.hiredate;

所有的排序操作都是在WHERE筛选之后进行的

--查询出所有办事员的编号、职位、年薪,按照年薪由高到低排序
SELECT empno,job,sal*12 income FROM emp
WHERE job='CLERK'
ORDER BY income;

总结

  • SELECT子句确定数据行
  • WHERE子句控制数据行
  • ORDER BY子句永远最后执行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值