首页 > 代码库 > 【SQL】Oracle分页查询的三种方法
【SQL】Oracle分页查询的三种方法
【SQL】Oracle分页查询的三种方法
采用伪列 rownum
查询前10条记录
?
1 2 3 4 5 6 7 8 9 10 11 | [sql] select * from t_user t where ROWNUM <10; 按照学生ID排名,抓取前三条记录 [java] SELECT * FROM ( SELECT id,realname FROM T_USER ORDER BY id asc ) WHERE ROWNUM <=3 分页SQL写法,从第10条记录开始,提取10条记录。 [java] SELECT * FROM ( SELECT ROWNUM rn,id,realname FROM ( SELECT id,realname FROM T_USER) WHERE ROWNUM<=20) t2 WHERE T2.rn >=10; 按照学生ID排名,从第10条记录开始,提取10条记录。 [sql] SELECT * FROM ( SELECT ROWNUM rn,id,realname FROM ( SELECT id,realname FROM T_USER ORDER BY id asc ) WHERE ROWNUM<=20) t2 WHERE T2.rn >=10; |
【注】
1.
不能抓取到记录。
?
1 | where rownum>1 |
2.
也不能抓取到记录。
?
1 | where rownum between 2 and 10 |
运用分析函数
用分析函数row_number()over(ORDER BY 字段)
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 按照学生ID排名,抓取前三条记录 [sql] SELECT * FROM ( SELECT id,realname,row_number()over( ORDER BY id asc ) rn FROM T_USER) WHERE rn <=3 按照学生ID排名,从第10条记录开始,提取10条记录。 [sql] SELECT * FROM ( SELECT id,realname,row_number()over( ORDER BY id asc ) rn FROM T_USER) WHERE rn BETWEEN 10 AND 20 运用minus方法 从第10条记录开始,提取10条记录。 [java] SELECT * FROM T_USER WHERE ROWNUM<20 MINUS SELECT * FROM T_USER WHERE ROWNUM<10; 按ID排序后,从第10条记录开始,提取10条记录。 [sql] ( SELECT * FROM ( SELECT * FROM T_USER ORDER BY id asc ) WHERE ROWNUM<20) MINUS( SELECT * FROM ( SELECT * FROM T_USER ORDER BY id asc ) WHERE ROWNUM<10); |
【SQL】Oracle分页查询的三种方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。