7×24小时服务热线 171 9866 1244
栏目列表
推荐内容

oracle rownum分页出现重复数据

时间:2013-07-16 15:47来源:中国IT实验室 作者:佚名 点击:
oracle rownum分页出现重复数据 通常一般的分页语句如下: ? 1 2 3 4 5 6 7 select * from ( select row_.*, rownum rownum_ from ( select p.id from table1 p order by p.DATA_UPDATE_TIME desc ) row_ where rownum = ?) b where b.r
 oracle rownum分页出现重复数据  通常一般的分页语句如下:
  ?
1
2
3
4
5
6
7
select *
from (
select row_.*, rownum rownum_
from ( select p.id from table1 p
order by p.DATA_UPDATE_TIME desc )
row_ where rownum <= ?) b
where b.rownum_ >?
  当红字部分的 DATA_UPDATE_TIME 不能唯一确定记录的顺序就会出现这个问题,比如有重复的DATA_UPDATE_TIME 。
  只要将语句写成:
1
2
3
4
5
6
7
8
9
10
11
12
13
select * from (    
  
select row_.*, rownum rownum_    
  
from (   
  
select p.id from table1 p    
  
order by p.DATA_UPDATE_TIME desc    
  
) row_   )    
  
where rownum_ > ? and rownum_ <= ?
  就ok.
  另一种改法:
1
2
3
4
5
6
7
select *
from (
select row_.*, rownum rownum_
from ( select p.id from table1 p
order by p.DATA_UPDATE_TIME desc,p.id desc )
row_ where rownum <= ?) b
where b.rownum_ >?
  再加一个不重复的也就行了

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
关闭
171 9866 1244 工作日:9:00-18:00
点击这里给我发消息

邮箱:
abit@design.com