小编典典

从薪水中选择rownum,其中rownum = 3;

sql

如何使用“ rownum”关键字从任何表中检索第三行(我使用的是oracle-10g)


阅读 237

收藏
2021-05-05

共1个答案

小编典典

当查询产生行时,Oracle将按顺序为ROWNUM赋值-因此,获取的第一行获取ROWNUM = 1,获取的第二行获取ROWNUM =
2,获取的第三行获取ROWNUM = 3,依此类推。注意-对于一行要被分配ROWNUM =
3,必须获取前两行。这就是为什么您的查询不返回任何行的原因。您要向数据库查询已提取的第三行-但从未提取过行1和2。

为了演示,请尝试运行以下查询:

SELECT S.* FROM SALARY S;          -- Should return all rows
SELECT ROWNUM, S.* FROM SALARY S;  -- Should return all rows with ROWNUM prepended
SELECT ROWNUM, S.* FROM SALARY WHERE ROWNUM=3;  -- Should return no rows

要变通解决此问题,请尝试以下操作:

SELECT ROW_NUMBER FROM
  (SELECT ROWNUM AS ROW_NUMBER, S.* FROM SALARY S)
  WHERE ROW_NUMBER = 3;

分享并享受。

2021-05-05