可能重复:
Paging with Oracle
我尝试从11行开始选择数据。我用过 从副本中选择e_name,其中rownum> 10;
这不会显示任何东西.. 请帮我在表格中选择第11行到第15行
答案 0 :(得分:3)
你不能像这样使用rownum,你需要将所有东西都包装到派生表中:
select *
from (
select *,
rownum as rn
form your_table
order by some_column
)
where rn between 11 and 15
您应该在内部查询中使用order by
,否则您将无法获得一致的结果。关系表中的行不有任何排序,因此数据库可以按任何顺序自由返回行。
请阅读手册了解更多详情。您的查询不起作用的原因在那里记录了示例。
http://docs.oracle.com/cd/E11882_01/server.112/e26088/pseudocolumns009.htm#i1006297
答案 1 :(得分:1)
你必须使用像
select e_name
from (select e_name,rownum rno from copy)
where rno > 10 and rno < 16
<强> Sample Example 强>
答案 2 :(得分:0)
您也可以使用分析函数row_number()。请考虑http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions137.htm
答案 3 :(得分:0)
首先编写将选择所有行的查询: -
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