主页 > 知识库 > 数据库 > Oracle >

织梦站长工具箱

  • 织梦CMS标签生成器
  • DedeCMS模板手册
  • AG亚游正则表达式测试
  • HTML/JS互转
  • AG亚游内容分词工具
  • AG亚游JS/CSS压缩

oracle rownum分页出现重复数据

来源:中国IT实验室 作者:佚名 发表于:2013-07-16 15:47  点击:
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_ ? 当红字部
 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_ >?
  再加一个不重复的也就行了

    有帮助
    (1)
    100%
    没帮助
    (0)
    0%
    关于我们 招贤纳士 联系我们 帮助中心 协议说明 网站地图 用户反馈 合作伙伴 捐助织梦