zoukankan      html  css  js  c++  java
  • 【SQL】Oracle分页查询的三种方法

    采用伪列 rownum

    查询前10条记录

    select * from t_user t where ROWNUM <10;

    按照学生ID排名,抓取前三条记录

    SELECT * FROM(SELECT id,realname FROM T_USER ORDER BY id asc ) WHERE ROWNUM <=3

    分页SQL写法,从第10条记录开始,提取10条记录。

    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条记录。

    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. where rownum>1 不能抓取到记录。
    2. where rownum between 2 and 10 也不能抓取到记录。

    运用分析函数

    用分析函数row_number()over(ORDER BY 字段)

    按照学生ID排名,抓取前三条记录

    SELECT * FROM(SELECT id,realname,row_number()over(ORDER BY id asc) rn FROM T_USER)WHERE rn <=3

    按照学生ID排名,从第10条记录开始,提取10条记录。

    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条记录。

    SELECT * FROM T_USER WHERE ROWNUM<20 MINUS SELECT * FROM T_USER WHERE ROWNUM<10;

    按ID排序后,从第10条记录开始,提取10条记录。

    (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);




  • 相关阅读:
    Java 应用性能调优实践
    Java序列化——实现Serializbale接口
    Bootstrap3快速使用
    C语言程序设计_zju——记录1
    《图解密码技术》——记录1
    电脑win10蓝屏,INACCESSIBLE BOOT DEVICE,处理方法
    读书笔记之《如何高效学习》
    读书笔记之《番茄工作法图解》
    读书笔记之《富爸爸与穷爸爸》
    读书笔记之《微习惯》
  • 原文地址:https://www.cnblogs.com/riskyer/p/3239186.html
Copyright © 2011-2022 走看看