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

Ven*_*kat 3 oracle

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

Jus*_*ave 11

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

SELECT *
  FROM (SELECT a.*,
               row_number() OVER (ORDER BY some_column) rn
          FROM your_table a)
 WHERE rn = 2;
Run Code Online (Sandbox Code Playgroud)

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

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