浏览 1623 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-04-25 关键字: 分页 oracle sql
写了两个有关分页的SQL 语句,希望对大家有点帮助...记住,只能在Oracle下使用 1 获取总页数 SELECT DECODE(mod(COUNT(*),100),0,COUNT(*)/100,TRUNC(COUNT(*)/100,0)+1) AS pages FROM XZQH 其中XZQH是表名,可以换成别的表格或者与别的表格相连或者加上查询条件....总之可以把XZQH换成FROM后的一切东西. 100是没页显示的记录数,换成你想要的!!! 生成结果是具有pages列的一个表格.可以用resultSet.getInt("pages")获得 2 获取特定的记录数据 SELECT x.* from (SELECT z.*,rownum numbers from XZQH z where rownum<101) x where x.numbers>90 其中XZQH的含义与上述一样,可以换成你任何想要的条件和表连接 其中101和90是指定界限的数字,拿此例来说,是取出第90-----100条数据. 好了,点到为止..具体在实践中该怎么用,大家自己慢慢琢磨吧!!! 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2008-06-14
应该是:
SELECT x.* from (
SELECT z.*,rownum numbers from(
select * from XZQH where XXX order by XXX) z
where rownum<101) x
where x.numbers>90
否则你出来的结果不正确的 |
|
| 返回顶楼 | |
|
时间:2008-06-16
laodizhuq 写道 应该是:
SELECT x.* from (
SELECT z.*,rownum numbers from(
select * from XZQH where XXX order by XXX) z
where rownum<101) x
where x.numbers>90
否则你出来的结果不正确的 也可以直接用分析函数
SELECT X.*
FROM (
SELECT
ROW_NUMBER() OVER(order by XXX) AS numbers
, XZQH.*
FROM XZQH
WHERE XXX
) X
WHERE X.numbers < 101
AND X.numbers > 90
|
|
| 返回顶楼 | |
|
时间:2008-06-24
我认为用这个比较好
select * from ( select row_.*, rownum rownum_ from (SELECT * FROM table ORDER BY table.id DESC) row_ where rownum <= ?) where rownum_ > ? |
|
| 返回顶楼 | |
|
时间:2008-07-18
注意需要排序是使用:
ROW_NUMBER() OVER (ORDER BY field1,field2) AS rowNummber 不然不能总体排序,而是页内排序。 |
|
| 返回顶楼 | |





