数据库

oracle rownum分页出现重复数据的问题

位置:首页 > 数据库 > Oracle教程,2013-07-15
oraclerownum分页出现重复数据通常一般的分页语句如下:select*from(selectrow_.*,rownumrownum_from(selectp.idfromtable1porde...
oracle rownum分页出现重复数据
 

通常一般的分页语句如下:

select*
from(
selectrow_.*, rownum rownum_
from(selectp.idfromtable1 p
orderbyp.DATA_UPDATE_TIMEdesc)
row_whererownum <= ?) b
whereb.rownum_ >?
当红字部分的 DATA_UPDATE_TIME 不能唯一确定记录的顺序就会出现这个问题,比如有重复的DATA_UPDATE_TIME 。
 
只要将语句写成:
select*from(   
 
selectrow_.*, rownum rownum_   
 
from(  
 
selectp.idfromtable1 p   
 
orderbyp.DATA_UPDATE_TIMEdesc   
 
) row_   )   
 
whererownum_ > ?andrownum_ <= ?
就ok.
 
另一种改法:
select*
from(
selectrow_.*, rownum rownum_
from(selectp.idfromtable1 p
orderbyp.DATA_UPDATE_TIMEdesc,p.iddesc)
row_whererownum <= ?) b
whereb.rownum_ >?
再加一个不重复的也就行了

TAGS:rownum分页oracle 分页

猜你喜欢

NewHot