Oracle分页查询

复制代码
SELECT  * FROM 
(
SELECT A.*, ROWNUM RN 
FROM (SELECT * FROM bhis_gz_zg_360007002204.v_query_lis_pcas) A 
)
WHERE RN BETWEEN 1 AND 10
          11   20
          21   30
 
复制代码

oracle没有limit,有rownum记录行号, 需要参数都需要变, BETWEEN  i*n-n+1  AND  i*n;查询计算:当前页码:i,当前页面大小:n

 

上面那种效率差并且不能排序

1
2
3
4
5
6
7
8
9
10
--  有ORDER BY排序的写法。(效率较高)
 
    SELECT *
  FROM (SELECT tt.*, ROWNUM AS n
          FROM ( SELECT  ID, TZBT, TZNR, SWRYJGMC, to_char(TZSJ, 'yyyy-MM-dd HH:mm:ss')as tzsj from tb_plsb_xxfw
        WHERE YXBZ='Y'     AND TZRZH = 'kz0419'
                and TZSJ >= TO_DATE('2022-05-28','yyyy-MM-dd')
               ORDER BY TZSJ DESC) tt
         WHERE ROWNUM <= 10) tb_plsb_xxfw
 WHERE tb_plsb_xxfw.n >= 1;

  

posted @   漫步花海下的oldman  阅读(34)  评论(0)    收藏  举报
点击右上角即可分享
微信分享提示