在oracle中只检索表的第二行?

时间:2011-04-05 06:45:49

标签: oracle

任何人都可以帮忙,如何从oracle中的表中确切地检索第二行?

2 个答案:

答案 0 :(得分:11)

由于表中的行本质上是无序的,因此“第一”和“第二”的概念要求您指定某种强制执行的方式(即ORDER BY子句)。最简单的方法是使用分析函数

SELECT *
  FROM (SELECT a.*,
               row_number() OVER (ORDER BY some_column) rn
          FROM your_table a)
 WHERE rn = 2;

您也可以使用ROWNUM,但需要额外的嵌套级别

SELECT *
  FROM (SELECT b.*, rownum rn
          FROM (SELECT *
                  FROM your_table a
                 ORDER BY some_column) b
         WHERE rownum <= 2)
 WHERE rn > 1

答案 1 :(得分:-5)

感谢您的回答,现在我找到了解决方案,

      select * from
        (select rownum rn,column1,column2,...,columnn from tablename)
      where
         rn=2 

现在您可以查看并发布您的宝贵意见。