Oracle数据库实现分页查询
时间:2019-04-04 14:48 来源:linux.it.net.cn 作者:IT
Oracle数据库实现分页查询
最近刚接触oracle数据库,现在工作中使用到了分页查询功能,在这里记一次笔记.
首先了解ROWNUM
*开始在网上查了资料说可以使用ROWNUM,但是实际使用中却发现在有条件的情况下返回的没 有数据,但是数据库中符合的数据是存在的,后来再继续在网上翻阅资料发现ROWNUM只能使用(<、<=、!=)符号,不支持>,>=,= *
对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,相当于角标,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀。
select id,name from user_table where rownum > 5 and rownum < 10;
这条查询是没有结果的,后来看到网上说可以使用子查询
select b.* from (select id,name,rownum rn from user_table) b where b.rn>5 and b.rn<10
这样就可以实现简单的分页查询了
Mysql中的分页查询
一般的分页查询使用简单的 limit 子句就可以实现。limit 子句声明如下:
SELECT * FROM user_table LIMIT [offset,] rows | rows OFFSET offset
LIMIT 子句可以被用于指定 SELECT 语句返回的记录数。需注意以下几点:
第一个参数指定第一个返回记录行的偏移量
第二个参数指定返回记录行的最大数目
如果只给定一个参数:它表示返回最大的记录行数目
第二个参数为 -1 表示检索从某一个偏移量到记录集的结束所有的记录行
初始记录行的偏移量是 0(而不是 1)
下面是一个应用实例:
select * from user_table where type=8 limit 1000,10;
该条语句将会从表 orders_history 中查询第1000条数据之后的10条数据,也就是第1001条到第10010条数据。
(责任编辑:IT)
Oracle数据库实现分页查询 最近刚接触oracle数据库,现在工作中使用到了分页查询功能,在这里记一次笔记. 首先了解ROWNUM *开始在网上查了资料说可以使用ROWNUM,但是实际使用中却发现在有条件的情况下返回的没 有数据,但是数据库中符合的数据是存在的,后来再继续在网上翻阅资料发现ROWNUM只能使用(<、<=、!=)符号,不支持>,>=,= * 对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,相当于角标,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀。 select id,name from user_table where rownum > 5 and rownum < 10; 这条查询是没有结果的,后来看到网上说可以使用子查询 select b.* from (select id,name,rownum rn from user_table) b where b.rn>5 and b.rn<10 这样就可以实现简单的分页查询了 Mysql中的分页查询 一般的分页查询使用简单的 limit 子句就可以实现。limit 子句声明如下: SELECT * FROM user_table LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于指定 SELECT 语句返回的记录数。需注意以下几点: 第一个参数指定第一个返回记录行的偏移量 第二个参数指定返回记录行的最大数目 如果只给定一个参数:它表示返回最大的记录行数目 第二个参数为 -1 表示检索从某一个偏移量到记录集的结束所有的记录行 初始记录行的偏移量是 0(而不是 1) 下面是一个应用实例: select * from user_table where type=8 limit 1000,10; 该条语句将会从表 orders_history 中查询第1000条数据之后的10条数据,也就是第1001条到第10010条数据。 (责任编辑:IT) |