Oracle中,对如何对排序后的结果进行分页显示
表1
姓名 年龄 分数
张三 12 50
李四 10 90
王五 15 10
张平 10 70
以分数排序
结果要求每次显示二条
-------------------------------
第一次显示
姓名 年龄 分数
李四 10 90
张平 10 70
---------------
第二页显示
姓名 年龄 分数
张三 12 50
王五 15 10
但我的得到的结果是:
-------------------
第一次显示
姓名 年龄 分数
张三 12 50
李四 10 90
第二页显示
姓名 年龄 分数
王五 15 10
张平 10 70
请问要怎样才能得到我要的结果
------解决方案--------------------应该是需要使用rownum伪列
------解决方案--------------------我想lz的分页用的就是rownum的方法,只是子查询的order by 有问题!!order by 一定要order by unique的column,没有的话,就加个rowid字段
SELECT * FROM (select row_.*, rownum start_rownum_ from (
--符合需要的子查询
) row_ WHERE rownum <= ? ) WHERE start_rownum_ > = ?
------解决方案--------------------错了,是
select t.姓名,年龄,分数
from ( select row_number() over(order by 分数 desc) rn, 姓名, 年龄, 分数
from 表1 ) t
where t.rn > (&页码 - 1) * &每页行数
and t.rn <= &页码 * &每页行数