码迷,mamicode.com
首页 > 其他好文 > 详细

分页问题

时间:2014-12-17 13:11:12      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:des   style   ar   color   sp   strong   on   数据   2014   

很长时间没有碰这些常规任务了,妈蛋 劳资一直在写文档~~~~~~~~~~~~

今天手痒,从测试分支上弄了一个代码写了个分页功能,跟开发人员那要了个任务,然后不亦乐乎的写程序,一开始我的分页是这样写的:

SELECT IN_MNO,
       CRD_NO,
       TRAN_CD,
       TRAN_AMT,
       REC_FEE_AMT,
       UUID,
       TRAN_DT,
       TRAN_TM
  FROM PTS.T_PTS_TRANDATA
 WHERE CRD_NO is not null
   and tran_cd in
       (‘10110001‘, ‘10110002‘, ‘10110005‘, ‘10110006‘, ‘10110008‘)
   and in_mno =‘800027844580005‘
   and TRAN_DT >= ‘20141201‘
   and TRAN_DT <= ‘20141231‘
   and rownum > 0
   and rownum <= 20
 order by TRAN_DT desc, TRAN_TM desc;

妄图通过rownum来分页,事实证明这是不可取的;因为

rownum是查询过后才按顺序排的,假如你的条件是rownum>1;那么返回数据的第一条(rownum是1)就不符合要求了,然后第二条数据变成了现在的第一条,结果这一条rownum又变成1了又不符合要求了,以此类推 就没有返回结果。
如果想分页的话 是把rownum作为子表的一个字段(起个别名)。所以分页的时候是没有小于那一说的。fuck


修正后这样的完爆

select *
  from (SELECT A.*,
               ROWNUM RN
          FROM (
          
          SELECT IN_MNO,
                        CRD_NO,
                        TRAN_CD,
                        TRAN_AMT,
                        REC_FEE_AMT,
                        UUID,
                        TRAN_DT,
                        TRAN_TM
                   FROM PTS.T_PTS_TRANDATA
                  WHERE CRD_NO is not null
                    and tran_cd in (‘10110001‘,
                                    ‘10110002‘,
                                    ‘10110005‘,
                                    ‘10110006‘,
                                    ‘10110008‘)
                    and in_mno = ‘800027844580005‘
                    and TRAN_DT >= ‘20141201‘
                    and TRAN_DT <= ‘20141231‘
                  order by TRAN_DT desc, TRAN_TM desc
          
          
          ) A
         WHERE ROWNUM <= 30
         order by TRAN_DT desc, TRAN_TM desc)
 WHERE RN > 20;


分页问题

标签:des   style   ar   color   sp   strong   on   数据   2014   

原文地址:http://my.oschina.net/u/1455908/blog/356971

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!