可能重复:
使用 Oracle 进行分页
我尝试从 11 行开始选择数据。我使用 select e_name from copy where rownum>10;
这不会显示任何内容.. 请帮我在表格中选择第 11 行到第 15 行
可能重复:
使用 Oracle 进行分页
我尝试从 11 行开始选择数据。我使用 select e_name from copy where rownum>10;
这不会显示任何内容.. 请帮我在表格中选择第 11 行到第 15 行
您不能像那样使用 rownum,您需要将所有内容包装到派生表中:
select *
from (
select *,
rownum as rn
form your_table
order by some_column
)
where rn between 11 and 15
您应该order by
在内部查询中使用 an ,否则随着时间的推移您将无法获得一致的结果。关系表中的行没有任何顺序,因此数据库可以自由地以它认为合适的任何顺序返回行。
请阅读手册了解更多详情。您的查询不起作用的原因已通过示例记录在那里。
http://docs.oracle.com/cd/E11882_01/server.112/e26088/pseudocolumns009.htm#i1006297
您也可以使用分析函数 row_number() 。请考虑http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions137.htm
首先编写将选择所有行的查询,如下所示:-
select ename from employee
现在在您的查询中添加一个 rownum 列,rownum 将帮助您识别查询结果中的行数
select rownum r,ename from employee
现在将您的查询作为子查询并将范围应用于“r”(rownum)
select * from (selecr rownum r, ename from employee) subq where subq.r between 11 and 15