
编号 姓名 数学 语文
1 张三 95 95
2 李四 85 96
3 王五 100 100
4 赵六 88 97
5 周七 98 99
想要输出个一个翻页查询 每页显示2个人 按照总分排序 编号按分数重新排列
比如:
第一页
1,王五 100 100 200
2,周七 98 99 197
Oracle的分页查询语句基本上可以按照下面给出的格式来进行套用。
分页查询格式:
SELECT * FROM
(
SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
WHERE ROWNUM <= 40
)
WHERE RN >= 21
其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 40和RN >= 21控制分页查询的每页的范围。
上面给出的这个分页查询语句,在大多数灶颤情况拥有较高的效率。分页的目的就是控制输出结果集大小,将结果尽快的返回。在上面的分页查询语句中,这种考虑主要体现在WHERE ROWNUM <= 40这句上。
选择第21 到40条记录存在两种方法,一种是上面例子中展示的在查询的第二层通过ROWNUM <= 40来控制最大值,在查询的最外层控制最小隐扰败值。而另一种方式是去掉查询第二层的WHERE ROWNUM <= 40语句,在查询的最外层控制分页的李基最小值和最大值。
SELECT *
FROM (SELECT a.*, ROWNUM rnum
FROM (SELECT 姓名,数学,语文,数岁型学+语文 as 总分
FROM 表 order by 总分改雀拿核搭) a
WHERE ROWNUM <= :v_page_size * :v_page_index)
WHERE rnum >= :v_page_size * (:v_page_index - 1) + 1;
SELECT
*
FROM
(
SELECT
rownum AS 排名,
姓名,
数学,
语敬游散文,
数学 + 语文 AS 总分
FROM
表磨桥
ORDER BY
数学 + 语亮氏文 DESC
) as SubQuery
WHERE
SubQuery.排名 BETWEEN 1 AND 2
select rownum newbh, bh oldbh, xm, shx, yuew from
(select rownum rn, bh, xm, shx, yuew from (select bh, xm, shx, yuew from s order by shx + yuew desc) a where rownum <= 4) b
where rn >= 3
这是第二页的迹带。每槐尘页两行,不同的页使用不同的数字查询即可铅州禅。
select * from ( select a.*,rownum rn from tab a ) where rn between 1 and 2
翻页梁好的时橡仔铅候戚基动态拼between就行了