日期:2014-05-16  浏览次数:20547 次

oracel数据库分页方法

如从表中取出4-6行的数据;

sql如下:

得到4-6行的数据
select id,age
from zystudent
where id in(
select id?
from zystudent
where rownum<=6?
and?
id not in(
select id from zystudent where rownum<=3)
);

最笨的方法,查询效率很低,不建议使用

select id,name,age from(
select id,name,age,rownum r
from zystudent) where r>=3 and r<=6;

将rownum定义成一个属性,然后调用,很不错的方法

select id,name,age from(
select id,name,age,rownum r
from zystudent where rownum<=6 order by id) where r>=4;

比上一个,更加优化了查询,根本不用遍历全表,就能实现

排序后再取出4-6;
select id,name,age from(
select id,name,age,rownum r
from(select * from zystudent order by id desc) where rownum<=6) where r>=4;

应该将排序的后的表作为要查询的表