一个奇葩的oracle分页问题,已经知道解决办法,但是不晓得产生问题的原音~
2013-08-27 16:57
501 查看
先看看效果图:如图所示出现两条“诺基亚售后服务”
看看数据库中:根据排序sort查询到的只有一条!!!
下面是调试得到的sql语句:
查询的结果是:
图1是第一页/每页五条:
【图1】
图2是第二页/每页五条:
【图2】
经过对比发现有两条“诺基亚售后服务”~~~~~~~~~~~~~~~~~~~~~~~
(下面是模拟上面的功能)
---------------------------------------------------运行的结果----------------------------------------------------------------------------------
ID NAME
SORT RN
1 aa 1 1
2 bb 1 2
3 cc 1 3
4 aa 1 4
5 bb 1 5
ID NAME
SORT RN
6 cc 1 6
7 aa 2 7
8 bb 4 8
9 cc 5 9
10 bb 6 10
没有重复id=5的,为什么?因为结果模拟跟遇到的错误不一致,所以很纠结
想搞弄清楚怎么回事,so,先上博客,后面再去研究~
看看数据库中:根据排序sort查询到的只有一条!!!
下面是调试得到的sql语句:
select * from (select m.*,ROWNUM rn from (select h.id,h.hotlinesort,h.hotlinename,h.typeid,h.brandid from t_d_hotline h where h.s_isdeleted = 0 order by h.hotlinesort asc) m where ROWNUM <=5) where rn>0; select * from (select m.*,ROWNUM rn from (select h.id,h.hotlinesort,h.hotlinename,h.typeid,h.brandid from t_d_hotline h where h.s_isdeleted = 0 order by h.hotlinesort asc) m where ROWNUM <=10) where rn>5;
查询的结果是:
图1是第一页/每页五条:
【图1】
图2是第二页/每页五条:
【图2】
经过对比发现有两条“诺基亚售后服务”~~~~~~~~~~~~~~~~~~~~~~~
(下面是模拟上面的功能)
create table ceshi(id number,name varchar(20),sort number); truncate table ceshi; select * from ceshi; insert into ceshi values(1,'aa',1); insert into ceshi values(2,'bb',1); insert into ceshi values(3,'cc',1); insert into ceshi values(4,'aa',1); insert into ceshi values(5,'bb',1); insert into ceshi values(6,'cc',1); insert into ceshi values(7,'aa',2); insert into ceshi values(8,'bb',4); insert into ceshi values(9,'cc',5); insert into ceshi values(10,'bb',6); insert into ceshi values(11,'cc',7); select * from (select m.*,ROWNUM rn from (select * from ceshi h order by h.sort asc) m where ROWNUM <=5) where rn>0; select * from (select m.*,ROWNUM rn from (select * from ceshi h order by h.sort asc) m where ROWNUM <=10) where rn>5;
---------------------------------------------------运行的结果----------------------------------------------------------------------------------
ID NAME
SORT RN
1 aa 1 1
2 bb 1 2
3 cc 1 3
4 aa 1 4
5 bb 1 5
ID NAME
SORT RN
6 cc 1 6
7 aa 2 7
8 bb 4 8
9 cc 5 9
10 bb 6 10
没有重复id=5的,为什么?因为结果模拟跟遇到的错误不一致,所以很纠结
想搞弄清楚怎么回事,so,先上博客,后面再去研究~
相关文章推荐
- cx_Oracle安装出现的一个问题以及解决办法
- 问题需要反过来想,oracle连接问题的一个另外的解决办法。
- (数据库未打开错误)跟大家分享一个Oracle问题的解决办法
- 【已经解决】安装oracle中遇到的一个小问题。。。
- Oracle SID在本机上已经存在,请指定一个不同的SID”的解决办法
- Oracle SID在本机上已经存在,请指定一个不同的SID”的解决办法
- 解决一个问题的思路 之“解决已经写满con.close() 仍然出现"但是尚未从池中获取连接"的连接池耗尽问题”
- Oracle SID在本机上已经存在,请指定一个不同的SID”的解决办法
- 你就是一个画家!你现在想绘制一幅画,但是你现在没有足够颜色的颜料。为了让问题简单,我们用正整数表示不同颜色的颜料。你知道这幅画需要的n种颜色的颜料,你现在可以去商店购买一些颜料,但是商店不能保证能供应所有颜色的颜料,所以你需要自己混合一些颜料。混合两种不一样的颜色A和颜色B颜料可以产生(A XOR B)这种颜色的颜料(新产生的颜料也可以用作继续混合产生新的颜色,XOR表示异或操作)。本着勤俭节约的
- 关于VC写DLL文件产生的一个fatal errorc1083问题的解决办法
- Oracle SID在本机上已经存在,请指定一个不同的SID”的解决办法
- 国产Dwz 同一个页面多个分页标签分页失效或者分页混乱的问题解决办法
- Oracle SID在本机上已经存在,请指定一个不同的SID”的解决办法
- Oracle Order By后导分页数据重复问题解决办法。
- Oracle SID在本机上已经存在,请指定一个不同的SID”的解决办法
- Oracle SID在本机上已经存在,请指定一个不同的SID”的解决办法
- 关于maven项目报错,但是找不到问题的所在的一个解决办法
- 创建并部署一个连接SQLAzure的WindowsAzure应用遇到的问题及解决办法
- libmysqlcppconn-dev : 依赖: libboost-dev 但是它将不会被安装 一个解决办法
- MyBatis-模糊查询控制台不报错,但是得到的结果集合确是0的问题解决办法