在oracle中选择第三行到第n行的行

时间:2012-08-31 06:30:22

标签: oracle oracle10g oracle11g

  

可能重复:
  Paging with Oracle

我尝试从11行开始选择数据。我用过 从副本中选择e_name,其中rownum> 10;

这不会显示任何东西.. 请帮我在表格中选择第11行到第15行

4 个答案:

答案 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