oracle分页 语句
String sql = "select * from student where rowCount> "+currentPage*(pageSize-1)+" and rowCount<= "+currentPage*pageSize+""; 请问这句什么意思啊 这是在java里面 currentPage*(pageSize-1) 这句什么意思啊 是不是他写错了 (currentPage-1)*pageSize应该是这样吧
String sql = "select * from student where rowCount> "+currentPage*(pageSize-1)+" and rowCount<= "+currentPage*pageSize+""; 请问这句什么意思啊 这是在java里面 currentPage*(pageSize-1) 这句什么意思啊 是不是他写错了 (currentPage-1)*pageSize应该是这样吧
答案:对的,你说的对,但是rowCount 不行吧,我一直用rownum,是了一下rowCount也不行,但是建议你这样写:
select /*+first_rows(10)*/ b.* from
(select /*+first_rows(10)*/ a.*,rownum rnum from
(select /*+first_rows(10)*/ * from student ) a where rownum<= "+currentPage*pageSize+"
)b
where rnum>= (currentPage-1)*pageSize;
这个意思就是认为的在sql中添加hint 数据库返回指定条目的数据是最快的。
其他:1.oracle数据库分页
select * from (select a.*,rownum rc from 表名 where rownum<=endrow) a where a.rc>=startrow
2.DB2数据库分页
Select * from (select rownumber() over() as rc,a.* from (select * from 表名 order by 列名) as a) where rc between startrow and endrow
3.SQL Server 2000数据库分页
Select top pagesize * from 表名 where 列名 not in(select top pagesize*page 列名 from 表名 order by 列名) order by 列名
4.SQL Server 2005数据库分页
Select * from (select 列名,row_number() over(order by 列名1) as 别名from 表名) as t where t.列名1>=startrow and t.列名1<=endrow
5.MySQL数据库分页
Select * from 表名 limit startrow,pagesize
(Pagesize为每页显示的记录条数)
6.PostgreSQL数据库分页
Select * from 表名 limit pagesize,offset startrow
(Pagesize为每页显示的记录条数.) currentPage是每页显示多少条.
pageSize是要显示第几页
上一个:oracle中表A有字段id,name,age,表B有字段id,subject,score,id为学生学号,subject为科目,score分数
下一个:oracle 语句问题