Oracle三层嵌套分页查询

--table A

select * from (select ta.*,rownum r  from (select * from A) ta where rownum < 10) where r > 5

--注: 其实两层就可以,不过,两层嵌套查询不会用到oracle的外层条件内推机制,效率慢了点

rownum原理:

很简单,rownum是oracle根据查询动态生成额,记住,产生rownum之前不看where条件子句,所以当查询一条结果时,rownum被oracle初始化为1,

这时执行where子句,成立则继续,否则则丢弃,这也就是为什么rownum=1  rownum

rownum=2为什么不好使?

1 Oracle executes your query.

1.执行查询操作

2 Oracle fetches the first row and calls it row number 1.

2.将第一行的row num置为1

3 Have we gotten past row number meets the criteria? If no, then Oracle discards the row, If yes, then Oracle return the row.

3.将得到的行的row num与条件相比较,如果不匹配,则抛弃行,如果匹配,则返回行

4 Oracle fetches the next row and advances the row number (to 2, and then to 3, and then to 4, and so forth).

4.oracle获取下一行,然后将rownum增1

5 Go to step 3.

5.返回第3步

从这个原理可以知道,select rownum,name from emp where rownum>5;不返回行,因为首先执行查询select name from emp,将第1行的rownum标为1,然后看where条件,为false,则抛弃行,执行第2行,还是rownum标为1,看where条件还为false,所以永远是false,rownum不改变,所有的行都被抛弃,所以没有结果。

oracle 三层嵌套查询,oracle 三层嵌套分页查询相关推荐

  1. mysql多表联查分页_sqlserver多表联合查询和多表分页查询的代码讲解

    sqlserver多表联合查询和多表分页查询的代码讲解 发布时间:2020-05-14 14:42:07 来源:亿速云 阅读:700 作者:Leah 这篇文章主要为大家详细介绍了sqlserver多表 ...

  2. 倒序查询_mysql大表分页查询翻页优化方案

    mysql分页查询是先查询出来所有数据,然后跳过offset,取limit条记录,造成了越往后的页数,查询时间越长 一般优化思路是转换offset,让offset尽可能的小,最好能每次查询都是第一页, ...

  3. springboot controller 分页查询_Spring Boot实战分页查询附近的人: Redis+GeoHash+Lua

    您的支持是我不断创作巨大动力 CSDN博客地址(关注,点赞) 人工智能推荐 GitHub(Star,Fork,Watch) 前言 最近在做社交的业务,用户进入首页后需要查询附近的人: 项目状况:前期尝 ...

  4. mysql关联表分页查询_MySQL一对多分页查询-主表关联表条件查询问题

    文章目录 1 摘要 2 情景复现 2.1 数据模型 2.2 核心代码 2.3 测试数据 2.4 拓展一点 1 摘要 分页查询是后台项目中最常见的一种操作,在一对多(one to many)的关系表中, ...

  5. php redis 分页查询,redis如何解决分页查询

    我们都知道,通过缓存查询的结果,可以极大的提升系统的服务能力,以及降低底层服务或者是数据库的压力.对于有分页条件的缓存,我们也可以按照不同的分页条件来缓存多个key. 基于SortedSet的分页查询 ...

  6. oracle 与mysql查询_oracle与mysql分页查询语句sql

    如果我们是通过JDBC的方式访问数据库,那么就有必要根据数据库类型采取不同的SQL分页语句,对于MySql数据库,我们可以采用limit语句进行分页,对于Oracle数据库,我们可以采用rownum的 ...

  7. oracle mssql 实例,oracle,mysql,SqlServer三种数据库的分页查询的实例

    MySql: MySQL数据库实现分页比较简单,提供了 LIMIT函数.一般只需要直接写到sql语句后面就行了. LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数, ...

  8. infomixdb mysql_不同数据库oracle mysql SQL Server DB2 infomix sybase分页查询语句

    在不同数据库中的使用的分页查询语句: 当前页:currentpage 页大小:pagesize 1. Oracle数据库 select * from (select A.*,rownum rn fro ...

  9. Hibernate查询——HQL,包括分页查询

    hibernate查询 概述:数据查询与检索是Hibernate中的一个亮点.相对其他ORM实现而言,Hibernate提供了灵活多样的查询机制. HQL --(Hibernate Query Lan ...

  10. MySQL数据库——day26 数据库安装,卸载,概念,msq的介绍,安装,连接,DDL,DML,DQL模糊查询,字段控制(别名和运算),排序,聚合函数,分组查询(where和having),分页查询

    学到mysql的时候非常的快,感觉前面的没有很巩固,还是要复习前面的博客 常见的数据库 MySQL , Oracle , SQL Server , SQLite , DB2 , - SQL Serve ...

最新文章

  1. 出道即巅峰,掀起AI领域巨浪的GPT-3来啦
  2. oracle没有groupby,oraclegroupby之后还可以groupby么
  3. linux diff(differential) 命令
  4. 炼丹秘术:给Embedding插上翅膀
  5. 四大技巧轻松搞定云容器
  6. F - Sugoroku2(期望dp)
  7. @RequestParam详解
  8. 温州服务器付费方式_新购买的服务器是选择包年包月还是按流量计费呢?
  9. SSM框架开发web项目系列(四) MyBatis之快速掌握动态SQL
  10. Hadoop集群的启动顺序
  11. Jenkins testng maven reportng
  12. 第二次作业——个人项目实战之随机数独生成
  13. java 默认为空的注解,错误注解的字段设置一个默认的空值
  14. VR+教育 虚拟现实(VR)智慧教室整体解决方案
  15. unity 无法打包
  16. javaweb大全:地址来自 孤傲苍狼
  17. 电脑开机黑屏有鼠标怎么办
  18. 这么炫酷的轮播图·你想学吗?
  19. thinkphp6+swoole websocket使用教程自研路线不建议使用
  20. ubuntu下配置TFTP,笔记

热门文章

  1. 权威认可!PolarDB-X高分通过中国信通院《分布式事务数据库稳定性专项评测》
  2. 如何实现一个跨库连表SQL生成器?
  3. 阿里NIPS 2017论文解读:如何降低TensorFlow训练的显存消耗?
  4. ubuntu mysql 迁移_(最新)ubuntu20.04LTS版迁移mysql8.0数据库的方法
  5. 棱镜刘大澎:云时代的手游SDK接入
  6. 基于Unity的弹幕游戏多人联机尝试
  7. 45岁码农用不到2年时间撸出100款扑克游戏
  8. 【蓝桥杯Java_C组·从零开始卷】第四节、一维数组与二维数组
  9. centos7安装sftp服务器
  10. 基于IPv6数据包分析