您现在的位置是:群英 > 数据库 > 关系型数据库
oracle中进行的区间查询语句有哪些?
Admin发表于 2022-08-03 17:35:491267 次浏览
这篇文章主要介绍了title,小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望大家通过这篇文章可以有所收获。

oracle的区间查询语句:1、“select * from 表名 where rownum <= 数值”语句,该语句查询表中指定前几条数据;2、“select * from 表名 where rownum <= 结束值 minus select * from 表名 where rownum < 起始值”语句,该语句查询表中指定区间内的数据。

本教程操作环境:windows10系统、Oracle 12c版、Dell G3电脑。

oracle的区间查询语句是什么

Oracle使⽤rownum的关键字来实现这种查询:

⾸先我们假设有⼀个地域信息表area,其表结构如下图所⽰:

表中的数据如下图所⽰(select * from area语句得到的结果):

1)查询表中的前8条记录

select * from area where rownum <= 8

查询结果如下:

2)查询第2到第8条记录

对于这种形式的查询,oracle不像mysql那么⽅便,它必须使⽤⼦查询或者是集合操作来实现。我们可以使⽤以下3种⽅式可以实现:

A: select id,province,city,district from (select id,province,city,district,rownum as num from area) where num between 2 and 8;

⾸先根据select id,province,city,district,rownum as num from area得到⼀个临时表,这个临时表中有⼀个rownum列(⼀个伪列,类似与

rowid,但⼜不同于rowid,因为rowid是物理存在的⼀个列,也就是说Oracle中任何⼀个表都有⼀个rowid列,⽽rownum不是物理存在的),

然后在临时表中来查询。

B: select * from area where rownum <= 8 minus select * from area where rownum < 2;

使⽤集合减运算符minus,该操作返回在第⼀个select中出现⽽不在第⼆个select中出现的记录。

C: select id,province,city,district from (select id,province,city,district,rownum as num from area) where num >=2
intersect

select * from area where rownum <= 8;

使⽤集合交运算符intersect,这⾥绕了⼀个弯(不过这个弯实现了rownum⼤于某个数的查询),它是⾸先利⽤A的⽅式查询得到所有

rownum⼤于2的记录,然后再与rownum⼩于等于8的记录集合做交运算。三种操作得到的结果⼀样,如下图所⽰:



以上就是关于“oracle中进行的区间查询语句有哪些?”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注群英网络,小编每天都会为大家更新不同的知识。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: Oracle
相关信息推荐
2021-12-22 20:32:39 
摘要:这篇文章我们来了解MySQL联结查询和集合操作的相关内容,联结查询和集合操作都是数据库中基础操作,因此本文就给大家来介绍一下,对大家学习MySQL的使用会有一定的帮助,下文有很详细的介绍,有需要的朋友可以参考,接下来就跟随小编来一起学习一下吧!
2022-10-18 17:54:04 
摘要:mysql和myisam的区别是:mysql是一个关系型数据库管理系统,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据,而myisam是mysql的默认数据库引擎(5.5版之前),并且不支持事务处理。
2022-05-18 17:23:55 
摘要:在oracle中,可利用nvl()函数进行空值替换,该函数用于从两个表达式中返回一个非null值,语法为“nvl(字段值,替换值)”;当字段值的结果为null值时,该函数会返回替换值,如果字段值的结果不是null值,则该函数会返回原字段值。
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部