文档章节

Oracle学习日志-8(查询结果排序)

 白话
发布于 01/23 18:36
字数 617
阅读 9
收藏 0

要用到的表如下

书上写到,上面的查询结果排序是随机的,再执行几次结果可能不同,但是我执行多次后,查询结果的排序都是如此,是因为oracle的默认处理方式是按照物理储存顺序查询的,而我在插入记录的时候都是按照id顺序插入的,所以查询出来的结果好像是按照id来排序的一样,实际上并不是。
如果要对查询结果排序,可以使用ORDER BY子句。

ORDER BY:

SELECT <列名1> <列名2> <列名3>...
FROM <表名>
ORDER BY<排序基准列1> <排序基准列2>...;

例如按照售价从高到低排序查询结果:

SELECT *
FROM Product
ORDER BY sale_price DESC;


如果是从低到高,就把DESC换成ASC。如果ORDER BY子句没有指定排列顺序,默认使用升序排序。
如果排序基准列有相同的值,那么相同的值排序顺序又会随机。那么可以指定多个排序基准列,查询结果会优先按照左边的标准排序,如果一样,再考虑右边的标准。如

SELECT *
FROM Product
ORDER BY sale_price ,product_id;

这样就会优先按照售价的升序排列,如果售价一样,就按照商品id排序。

如果排序键中有NULL值,那么含NULL的记录会在结果开头或者结尾汇总,oracle是在查询结果开头汇总。

列编号:

列表号是指SELECT子句的列按照从左到右的编号。ORDER BY子句可以通过列编号排序,如

SELECT product_id,product_name, sale_price
FROM Product
ORDER BY 3 DESC;


但是不推荐这样用,因为阅读很麻烦。而且该功能以后可能会被删除。

注意:

ORDER BY可以使用别名,但是GROUP不能使用别名。因为SELECT的语句执行顺序其实是:
FROM——WHERE——GROUP BY——HAVING——SELECT——ORDER BY
设置别名是在SELECT这里设置的,所以在它之前的GROUP BY是不能使用别名的。

© 著作权归作者所有

共有 人打赏支持
粉丝 9
博文 25
码字总数 27214
作品 0
梁平
私信 提问
Oracle查询前10条记录及分页查询(第5条到第10记录)

如果你想了解Oracle查询前10条记录的相关实际应用方案的话,你就可以点击以下的文章对其在实际相关操作中的正确用法,有一个更加完善的认识,希望你在浏览完以下的文章会以下就是正文的详细内...

xiaole0313
2015/07/22
0
0
主流数据库分页查询介绍

1 背景概述 由于在项目中需要在页面上显示数量非常多的数据, 在进行数据库查询时首先会把所有的数据都查询出来,然后在进行显示,这时候分页查询的操作就必不可少了,本文介绍Mysql、Oracl...

数通畅联
2015/11/26
185
0
简述Oracle的rownum原理

对于Oracle的rownum问题,很多资料都说不支持>,>=,=,between……and,只能用以上符号(<、& lt;=、!=),并非说用>,>=,=,between……and 时会提示SQL语法错误,而是经常是查不出一条记...

u012843873
2018/04/11
0
0
学习Oracle分析函数(Analytic Functions)

Oracle提供了一些功能很强大的分析函数,使用这些函数可以完成可能需要存储过程来实现的需求。 分析函数计算基于一组数据行的聚合值,它们不同于聚合函数的是,它们为每一组返回多行结果。分...

技术小胖子
2017/11/07
0
0
个人收集一些程序员面试题目(一) 一起分享

阿里巴巴公司DBA笔试题 http://searchdatabase.techtarget.com.cn/tips/2/2535002.shtml 注:以下题目,可根据自己情况挑选题目作答,不必全部作答.您也可以就相关问题直接找负责面试人员面述...

吕坤
2011/03/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

matlab-自控原理 rlocfind 根轨迹 通过鼠标点击图上一点得到该点的k与特征根

  matlab : R2018a 64bit     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   code clearclcclosenu......

志成就
2分钟前
0
0
Nginx负载均衡

Nginx负载均衡 负载均衡:负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。...

李超小牛子
55分钟前
0
0
ABUSE建了个恶意网站数据库

数据库已经按不同类型标记了各种恶意网站,例如它们当前是否在线,恶意内容类型,潜在威胁信息等。安全软件开发人员和浏览器开发人员可以免费使用此数据库来帮助用户拦截可能存在威胁的恶意网...

linuxCool
今天
2
0
【SQL】- 高级用法

数值和字符范围比较: between select *from books where price>=23.5 and price<=35; -- 等价于select *from books where price between 23.5 and 35; -- between包含边界的比较>= / <=......

ZeroneLove
今天
8
0
RabbitMQ如何解决各种情况下丢数据的问题

1.生产者丢数据 如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Jav...

编程SHA
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部