在oracle数据库中的分页sql语句怎么写?

author author     2023-05-09     791

关键词:

前提:

分页参数:size = 20 page = 2;

没有order by的查询;

嵌套子查询,两次筛选(推荐使用)。

SQL语句:

SELECT *

FROM (SELECT ROWNUM AS rowno, t.*

FROM DONORINFO t

WHERE t.BIRTHDAY BETWEEN TO_DATE ('19800101', 'yyyymmdd')

AND TO_DATE ('20060731', 'yyyymmdd')

AND ROWNUM <= 20*2) table_alias

WHERE table_alias.rowno > 20*(2-1);

扩展资料:

rownum总是从1开始的,第一条不满足去掉的话,第二条的rownum 又成了1。依此类推,所以永远没有不满足条件的记录。

可以这样理解:rownum是一个序列,是Oracle数据库从数据文件或缓冲区中读取数据的顺序。它取得第一条记录则rownum值为1,第二条为2。

依次类推:当使用“>、>=、=、between...and”这些条件时,从缓冲区或数据文件中得到的第一条记录的rownum为1,不符合sql语句的条件,会被删除,接着取下条。下条的rownum还会是1,又被删除,依次类推,便没有了数据。

参考技术A select * from
(select a.*,rownum rn from
(select * from 表名) a
)
where rn between 1 and 50

50行为一页
1和50为行号,根据你的情况自己改追问

那我直接这样写行不
select * from (select * from 表名) where rowNum <=3

追答

分页推荐用between

本回答被提问者采纳
参考技术B 有条语句可以设置查询显示的行数,不知道你是不是这个意思
语句:set pagesize n ,n的默认值为14,即每页显示14行,你可以自己设置追问

可以写个例子来看下吗?

参考技术C SELECT * FROM ( SELECT A.*, ROWNUM RN FROM
(
select count(*) over() DATACNT,ta.* from ta
)
) A WHERE ROWNUM <= 100
) WHERE RN >= 75
参考技术D select * from(select A.*,ROWNUM rn from(sql) A where ROWNUM<=(firstIndex+pageSize)) where rn>firstIndex

mybatis里sql语句的分页

SQL语句中的分页。首先在接口中定义,定义的时候是需要通过@Param注解来表示向mybatis里传入参数: publicinterfaceGoodsInfoMapperextendsIDaoHotel<GoodsInfo>{//定义一个方法,这个方法来表示分页的List<GoodsInfo>getlistbypage(@Param("star... 查看详情

在mysql数据库下,基于sql语言的分页语句

...====================================================另外提供给LZ其他数据库的分页语句OracleSELECT*FROM(SELECTA.*,ROWNUMRNFROM(QUERY_SQL)AWHEREROWNUM<=?)WHERERN>=?结合rownum关键字,利用嵌套三层select语句实现。第一个"?"表示终止行号,第二... 查看详情

oracle分页查询语句怎么写每页查询10条

比如我有22条数据到第三页只显示2条参考技术A1、通常的分页写法,也是第一种分页方法,类似如下方式:select*from(selecta.*,rownumrnfrom(select*fromtestaorderbyobject_name)awhererownum<=1000)wherern>990;这种方式,是对表进行排序翻页,比较... 查看详情

mysqlmybatis分页查询语句怎么写

...一个参数是起始未知,后面一个是查询多少个。3、Oracle的分页方法是嵌套子查询,需要用到rownum这个属性SqlServer是Top。分页例子:Oracleselect*from(selectemp.*,rownumrnfromempwhererownum<9)wherern>3;MySqlselect*fromemplimitstartIndex,maxNum参考技术... 查看详情

老码农怀旧一个简单好用的分页存储过程

数据库存储过程是一组预先创建并用指定的名称存储在数据库服务器上的SQL语句,将使用比较频繁或者比较复杂的操作,预先用SQL语句写好并用一个指定的名称存储起来,以后当需要数据库提供与已定义好的存储过程的功能相同... 查看详情

mysql的分页查询sql语句(代码片段)

MySQL一般使用LIMIT实现分页。基本语句为:SELECT...FROM...WHERE...ORDERBY...LIMIT...在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的问题就是确保使用了索引。举例来说,如果实际SQL类似下面语句,那么在category_id,id两列上建... 查看详情

PL/SQL 中的分页符

】PL/SQL中的分页符【英文标题】:PagebreakinPL/SQL【发布时间】:2011-03-3115:07:37【问题描述】:在我用过的PL/SQL程序中setpagesize40;所以根据上述行,分页符发生在40行之后。当分页发生时如何增加变量。即我有一个变量l_page_number并... 查看详情

java&sql的分页怎么做?

...显示的数据就,可以了第二种就是,根据页码来设置数据数据库中查询的行数从几行到几行;也不难第一种是在程序里分,第二种是在数据库中分;推荐用第一种哈,少访问几次数据库;呵呵参考技术A这个跟数据库有关,分页... 查看详情

分页操作

...数据的条数  而在Oracle中也有一个方言,专门用来Oracle数据库的分页查询,关键字为:ROWNUM 查看详情

Pervasive SQL 中的分页

】PervasiveSQL中的分页【英文标题】:PaginginPervasiveSQL【发布时间】:2008-09-2319:04:06【问题描述】:如何在PervasiveSQL(9.1版)中进行分页?我需要做类似的事情://MySQLSELECTfooFROMtableLIMIT10,10但我找不到定义偏移量的方法。【问题讨... 查看详情

大数据量下的分页查询优化技巧(代码片段)

...d做了查询优化,看了几篇博客刚好现在可以整理一下数据库分页查询的优化技巧基本上全网都是这么写的我简化了一下保留我想记住的内容《大数据量下的分页查询优化》 查看详情

pagehelper怎么计算总数的

...pageHelper的原理:pageHelper会使用ThreadLocal获取到同一线程中的变量信息,各个线程之间的Threadlocal不会相互干扰,也就是Thread1中的ThreadLocal1之后获取到Tread1中的变量的信息,不会获取到Thread2中的信息所以在多线程环境下,各个Thre... 查看详情

Oracle/PLSQL 中的分页错误

】Oracle/PLSQL中的分页错误【英文标题】:PaginationinOracle/PLSQLerror【发布时间】:2013-02-0820:17:30【问题描述】:嘿,我正在尝试将paging添加到我在PLSQL中的动态sql块中,但由于某种原因,当我运行测试脚本时它会出错:ORA-00932:inconsi... 查看详情

Advantage 数据库中的分页

】Advantage数据库中的分页【英文标题】:PaginginAdvantageDatabase【发布时间】:2010-02-1810:46:07【问题描述】:我正在创建一个在AdvantageDatabase服务器上运行的Web应用程序,这不是我个人选择的武器,但这是公司使用的。我有几个最终... 查看详情

php中的分页显示

...例代码均使用php编写。2、原理所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:每页多少条记录($PageSize)?当前是第几页($CurrentPageID)?现在只要再给我一个结果集,我就... 查看详情

初学oracle,怎样写一个oracle分页sql语句?

参考技术A这种sql网上可以找到很多,给你举个例子:\\x0d\\x0aselect*from(selecte.*,rownumrnfrom(select*fromemp)e)wherern>=5andrn 查看详情

关于linqtosql的分页

...ndex为1的时候,我想查询第1条至第10条数据,但是linq语句中的Skip(0)却查询不到表中的第一条数据,是从第2条数据开始到第11条数据的,应该怎么解决?我用的是.NET4.0,我在网上看到说这个问题是.NET3.5中的bug,.NET4.0中已经解决... 查看详情

各种数据库的分页查询语句

1.oracle数据库分页select*from(selecta.*,rownumrcfrom表名whererownum<=endrow)awherea.rc>=startrow2.DB2数据库分页Select*from(selectrownumber()over()asrc,a.*from(select*from表名orderby列名)asa)wherercbetweenstartr 查看详情