说明:实现分页功能,我每页要显示的数据是3条(pageSize),我现在要查询第1页(pageNow)的数据,这种情况下下面两条sql都是对的.但是改变了pageSize和pageNow的值的话,比如现在要查第2页的3条数据,只有第二条sql是对的(这句是对的),第一条sql查询不出来......
<1>、select * from (select temp1.*,rownum rn from (select * from goodsinfo where goodstype='香港电影' order by goodsid) temp1 where rownum>=pageSize*(pageNow-1)+1) temp2 where rn<=pageSize*pageNow
<2>、select * from (select temp1.*,rownum rn from (select * from goodsinfo where goodstype='香港电影' order by goodsid) temp1 where rownum<=pageSize*pageNow) temp2 where rn>=pageSize*(pageNow-1)+1;
<1>、select * from (select temp1.*,rownum rn from (select * from goodsinfo where goodstype='香港电影' order by goodsid) temp1 where rownum>=pageSize*(pageNow-1)+1) temp2 where rn<=pageSize*pageNow
<2>、select * from (select temp1.*,rownum rn from (select * from goodsinfo where goodstype='香港电影' order by goodsid) temp1 where rownum<=pageSize*pageNow) temp2 where rn>=pageSize*(pageNow-1)+1;
解决方案 »
- 不能启动OracleDBCsonsole,怎么处理
- 10g的存储过程拿到9i上面编译 运行不了.
- 请高手帮忙诊断诊断 问题出在哪,该如何解决!小弟先谢过
- 锁问题
- 直接在表编辑器里手动添几条测试记录,时间字段(DATE类型)却不知道怎么写进去,各位帮帮忙!
- 谁给介绍一下oracle dba studio的功能
- 这个问题如何解决????
- CREATE DATABASE的简单问题,帮忙!
- 100分求一存储过程
- 求测试一个 DBLINK 是否处于 Active的SQL语句! 即Oracle中dblink点测试时的那条!
- Oracle学习
- 请教oracle分组内排序,再取每个分组前N(含与第N条相同的N+1,N+1...记录)
看看这个帖子吧
http://topic.csdn.net/u/20110919/15/7e20df4c-28de-44d3-b15e-f3610559f947.html
既然都已经是三重套了
干脆就
select * FROM (SELECT b.*,ROWNUM n from (select * from abc t ORDER by vv) b ) c
WHERE n BETWEEN 4 AND 6;
你的第1条SQL是有问题的,错误的位置就是“where rownum>=pageSize*(pageNow-1)+1) temp2
”,rownum这个伪例的值必须是从1开始,所以rownum >= N的查询条件除非N等于1,否则该条件的计算结果永远为FALSE。所以你的第1条SQL只有查询第1页能得到结果。