利用Rownum对数据按GridView 的PageSize进行划分,为分页显示做准备
2008-11-14 16:24
239 查看
主要针对如何在将GridView中显示的数据分页显示,
假设Table A,使用的Sql Statement如下:
with T as (
select rownum RN, UserID, UserName, DeptNo, DeptNoDescr from A
)
SELECT *
FROM ( SELECT *
FROM T WHERE RN < '本页最后一笔数据的rowNum+1' and rn > '上页最后一笔数据的rowNum' order by RN)
PS:
SELECT * FROM T
WHERE RN < '本页最后一笔数据的rowNum+1' and rn > '上页最后一笔数据的rowNum'
order by RN
这里有一个小小的问题, 即若table T 中的数据量特别大的时候, 内查询的分页查询就显得特别的慢! 对这样的情况我暂时也没有什么特别好的方案, 希望网友可以提出建议以供小弟参考...
当前的页(CurrentPage), 每页显示的记录数(PageSize);每次当User换页是只要计算出本页最后一个记录的RowNum以及上页最后一个记录的RowNum,请注意RowNum 是个很奇怪的Oracle table 属性,
假如你要查某个table B的前10项数据,应该这样:
select * from (select * from B order by userID ) where RowNum <10
因为Oracle在检索的时候,会首先把数据都检索出来,然后在排序段中进行排序,假如你这样做:SELECT * from B where rowNum <'11 order by UserID,
在检索的时候,会首先把数据检索出来,也就是把B表数据都检索出来,然后再Order by排序操作。因为ROWNUM 数据是在排序前就检索出来的了,所以不能利用ROWNUM来取得排序后的前10条操作。那么应该如何操作呢。其实很简单,利用子查询,先排序,再取ROWNUM。/
select * from (select * from B order by userID ) where RowNum <10,
先写到这里,以后待做到分页控件都再直接用这样的Sql,每次去DB找到要显示的当前页数据
假设Table A,使用的Sql Statement如下:
with T as (
select rownum RN, UserID, UserName, DeptNo, DeptNoDescr from A
)
SELECT *
FROM ( SELECT *
FROM T WHERE RN < '本页最后一笔数据的rowNum+1' and rn > '上页最后一笔数据的rowNum' order by RN)
PS:
SELECT * FROM T
WHERE RN < '本页最后一笔数据的rowNum+1' and rn > '上页最后一笔数据的rowNum'
order by RN
这里有一个小小的问题, 即若table T 中的数据量特别大的时候, 内查询的分页查询就显得特别的慢! 对这样的情况我暂时也没有什么特别好的方案, 希望网友可以提出建议以供小弟参考...
当前的页(CurrentPage), 每页显示的记录数(PageSize);每次当User换页是只要计算出本页最后一个记录的RowNum以及上页最后一个记录的RowNum,请注意RowNum 是个很奇怪的Oracle table 属性,
假如你要查某个table B的前10项数据,应该这样:
select * from (select * from B order by userID ) where RowNum <10
因为Oracle在检索的时候,会首先把数据都检索出来,然后在排序段中进行排序,假如你这样做:SELECT * from B where rowNum <'11 order by UserID,
在检索的时候,会首先把数据检索出来,也就是把B表数据都检索出来,然后再Order by排序操作。因为ROWNUM 数据是在排序前就检索出来的了,所以不能利用ROWNUM来取得排序后的前10条操作。那么应该如何操作呢。其实很简单,利用子查询,先排序,再取ROWNUM。/
select * from (select * from B order by userID ) where RowNum <10,
先写到这里,以后待做到分页控件都再直接用这样的Sql,每次去DB找到要显示的当前页数据
相关文章推荐
- 对特定表进行分页显示的存储过程(要求有两个参数一个是 每页显示的记录的条数(@pagesize),第二个是显示第几页(@pageIndex))
- GridView和PageDataSource分页数据显示,翻至最后页出错(紧急求助)
- 利用GridView显示主细表并一次编辑明细表所有数据
- [转]利用GridView显示主细表并一次编辑明细表所有数据的例子
- 机器学习--准备数据与Numpy(四)--利用数组进行数据处理
- 利用ASP实现Oracle数据记录的分页显示
- 对数据进行分页,显示到table中
- 利用Repeater控件实现数据分页显示
- 利用GridView显示主细表并一次编辑明细表所有数据的例子
- 利用DataTable进行删除GridView中的数据方法之新思路
- 利用表格分页显示数据的js组件datatable的使用
- 利用redis缓存对 list集合中的数据 进行分页操作(一)
- 利用GridView显示主细表并一次编辑明细表所有数据的例子
- 使用MVCPager进行博客园首页列表数据的分页显示功能
- 利用GridView显示主细表并一次编辑明细表所有数据的例子
- 用jsp进行数据分页显示的一个实现
- 如何实现GridView控件分页显示数据
- 使用ajax、pageHelpler分页插件、利用json数据特性实现分页查询
- Repeater进行模板设计以及实现数据的分页显示
- 利用Limit完成数据的分页显示