2010.08.16——— oracle rownum分页 出现重复数据
参考:[url]http://blog.youkuaiyun.com/super_marioli/archive/2009/12/18/5025421.aspx[/url]
刚开始的写法:
但是这样子 就有个问题 当
不能唯一的确认数据的顺序时 就会莫名的出现一些问题 所以 更改为
从生成的结果集中 去select rownum rn from 结果集 这样 就不会存在不能唯一确定的问题了
参考:[url]http://blog.youkuaiyun.com/super_marioli/archive/2009/12/18/5025421.aspx[/url]
刚开始的写法:
select * from (select rownum rn s.ID,s.GCBM GCBM,s.QYBM QYBM,to_char(s.TBSJ,'yyyy-MM-dd') TBSJ,s.DTBM DTBM,d.DTMC DTMC ,s.SGZT SGZT,s.SGJD SGJD,s.SGJDMS SGJDMS,s.BZ BZ,s.SBRID SBRID ,c.true_name SBR from GC_SB_SGQY s,gc_gcxx_dtxx d ,tlb_user c where s.GCBM = '1' and s.DTBM = d.DTBM and c.user_id = s.SBRID order by s.TBSJ desc,s.id desc where rownum <=3 ) where rn > 0
但是这样子 就有个问题 当
order by s.TBSJ desc,s.id desc
不能唯一的确认数据的顺序时 就会莫名的出现一些问题 所以 更改为
select * from (select rownum rn from (select s.ID,s.GCBM GCBM,s.QYBM QYBM,to_char(s.TBSJ,'yyyy-MM-dd') TBSJ,s.DTBM DTBM,d.DTMC DTMC ,s.SGZT SGZT,s.SGJD SGJD,s.SGJDMS SGJDMS,s.BZ BZ,s.SBRID SBRID ,c.true_name SBR from GC_SB_SGQY s,gc_gcxx_dtxx d ,tlb_user c where s.GCBM = '1' and s.DTBM = d.DTBM and c.user_id = s.SBRID order by s.TBSJ desc,s.id desc) where rownum <=3 ) where rn > 0
从生成的结果集中 去select rownum rn from 结果集 这样 就不会存在不能唯一确定的问题了