问题:今天在工作中,在service中调用分页查询列表接口的时候,返回的到页面的数据中总是存在缺失的数据,还有重复的数据。

分析:select * from (select ROWNUM rn,t.* from (select * from student order by class) t where ROWNUM <![CDATA[<]]>#{1.endIndex}) where rn <![CDATA[>=]]>#{1.startIndex}

当endIndex为3和为5的时候ROWNUM发生了变化

id

student

class

rownum

1

zhao

2

1

2

qian

2

2

3

li

2

3

 

id

stuent

class

rownum

1

zhao

2

1

3

li

2

2

4

song

2

3

2

qian

2

4

5

yang

2

5

在上表中qian 和li 的rownum发生了变化

总结:oracle分页语句中:

1 不存在order by 则系统根据rowid来排序

2 若存在order by 则order by 后面的限制的列必须要能确定唯一,或者最小粒度的列能确定唯一(如id列)如上class都相同,则可以加上

order by class,id   或者  order by class,rowid

相关文章:

  • 2021-10-20
  • 2021-12-03
  • 2021-10-26
  • 2022-01-14
  • 2022-12-23
  • 2022-12-23
  • 2022-01-13
  • 2022-12-23
猜你喜欢
  • 2022-03-14
  • 2022-02-10
  • 2022-12-23
  • 2021-11-07
  • 2021-10-16
  • 2022-01-02
  • 2022-12-23
相关资源
相似解决方案