oracle 排序分页混乱【验证后有问题】
来源:互联网 发布:女生长得丑自卑知乎 编辑:程序博客网 时间:2024/04/29 06:02
今天有个需求用oracle排序分页:
sql如下:select *
from (select id, member_id, company_name, rownum rn
from (select t.id, t.member_id, t.company_name
from table1 t, table2 d
where t.id = d.opp_id(+)
and product_id_prefer = 1
and t.sales_id = 'sunny.zhaoy'
order by t.maturity asc, d.memo)
where rownum <= #endrow#) m
where m.rn >= #rowid#
这个sql是正确的,在开发库用了下,没有问题、、但是提交到测试库就有问题了,第三页和第四页,第五页第六页 怎么查询都是一样的结果。
比如我一页50条,那么下面两个sql查询的结果居然一模一样(总共600条):
select *
from (select id, member_id, company_name, rownum rn
from (select t.id, t.member_id, t.company_name
from table1 t, table2 d
where t.id = d.opp_id(+)
and product_id_prefer = 1
and t.sales_id = 'sunny.zhaoy'
order by t.maturity asc, d.memo)
where rownum <= 150) m
where m.rn >= 101
======================================================
select *
from (select id, member_id, company_name, rownum rn
from (select t.id, t.member_id, t.company_name
from table1 t, table2 d
where t.id = d.opp_id(+)
and product_id_prefer = 1
and t.sales_id = 'sunny.zhaoy'
order by t.maturity asc, d.memo)
where rownum <= 200) m
where m.rn >= 151
基本上应该没啥问题,问题出现在什么地方呢?
首先这跟oracle无关, 是典型的order by字段值不唯一造成分页记录混乱。
也就是说 我用 t.maturity asc, d.memo 排序,但是这两个字段的值可能都是相同的,或者很多都是不唯一的。。这时候就会出现这个问题了。
怎么解决呢?
其实很简单,只要在排序的时候加一个值唯一的字段的就可以了。最好是id
改成如下就ok了:
select *
from (select id, member_id, company_name, rownum rn
from (select t.id, t.member_id, t.company_name
from table1 t, table2 d
where t.id = d.opp_id(+)
and product_id_prefer = 1
and t.sales_id = 'sunny.zhaoy'
order by t.maturity asc, d.memo,t.id)
where rownum <= 150) m
where m.rn >= 101
======================================================
select *
from (select id, member_id, company_name, rownum rn
from (select t.id, t.member_id, t.company_name
from table1 t, table2 d
where t.id = d.opp_id(+)
and product_id_prefer = 1
and t.sales_id = 'sunny.zhaoy'
order by t.maturity asc, d.memo,t.id)
where rownum <= 200) m
where m.rn >= 151
- oracle 排序分页混乱【验证后有问题】
- oracle 排序分页混乱
- oracle 排序分页混乱
- 排序分页混乱问题
- oracle先排序后分页
- Oracle分页后数据出错的问题
- dir对文件排序后写入到记录文件,文件名称混乱问题
- oracle分页查询的排序问题
- Oracle分页查询排序数据重复问题
- Oracle中的order by分页排序问题
- Oracle分页查询排序数据重复问题
- oracle分页查询数据重复问题、分页排序陷阱
- listview中有checkbox 滑动后状态混乱现象
- Oracle 分页排序 笔记
- Oracle排序分页方法
- Oracle rownum 分页, 排序
- ORACLE排序分页
- Oracle rownum 分页, 排序
- nginx install
- 浅析将matlab函数编译成dll供Cpp调用的方法
- ERP选型:合适才是关键
- 关于 IE firefox Chrome下的通过用js 关闭窗口部分不支持问题解决
- 合并石子
- oracle 排序分页混乱【验证后有问题】
- 关于mongodb ,redis,memcache之间见不乱理还乱的关系和作用
- nginx init.d script
- GitHub 的公开演讲文化
- 我还是一个码农~
- 除甲醛方法
- avahi介绍
- Linux内核中的V4L2核心框架分析(V4L2 framework,video for linux 2,linux视频子系统) .
- 论坛源码推荐(1月15日):ClangFormat-Xcode--格式化代码 多个动画菜单效果