当前位置: 首页 > 面试题库 >

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

国高杰
2023-03-14
问题内容

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


问题答案:

当查询产生行时,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;

分享并享受。



 类似资料:
  • 问题内容: 我想写一个查询以显示获得最高3薪水的员工 但是我不明白如何为嵌套查询计算该rownum是否可以正常工作,或者如果遇到问题,请您让我理解: 我经历了此链接Oracle / SQL:为什么查询“ SELECT * FROM records where rownum> = 5 AND rownum <= 10”-返回零行 ,但它再次指向链接,但没有给出答案 问题答案: 的答案是一个很好的答案

  • 问题内容: 假设有工资表: 我目前正在使用此代码(AutoIT脚本: 因此,如果Hour_number在低小时或高小时之间,那两个查询是完美的。我需要某种查询,它基本上会执行以下操作: 然后将其重复为“默认”,因为找不到该员工。 补充:如果仅通过1个查询未找到$ Employee,是否可以尝试使用“ Default”? 问题答案: 如果仅通过1个查询未找到$ Employee,是否可以尝试使用“

  • 很好的一天, 我想更改一些程序代码(主要是SQL代码),因为数据库已经从DB2更改为Oracle。 这里有一个例子,我成功地改变了,但我不是真的了解它,我无法从谷歌找到它。 以下是原始SQL查询代码(使用DB2): 以下是我编辑后的SQL查询代码(成功从Oracle获取数据): 当我分析时,如果我没有将rownum更改为rownum1,我会得到错误,错误是ORA-00923:FROM关键字未在预期

  • 问题内容: 我在oracle中有一个employee表,其中包含名称,薪水和其他详细信息。 我正在尝试拿第二高的薪水,但无法拿到。 这一个工作正常 并给出输出: 但是当我使用相同的查询来获取第二高的行而没有得到任何输出时 但是当我更换与它给人的第一两项纪录输出。请有人解释为什么不起作用 问题答案: 这将起作用: 从(从薪金中选择e_salary订单中的薪水,按薪水从十进制中选择rn)从(中选择薪水

  • SQL SELECT TOP 子句 SELECT TOP 子句用于规定要返回的记录的数目。 SELECT TOP 子句对于拥有数千条记录的大型表来说,是非常有用的。 注意:并非所有的数据库系统都支持 SELECT TOP 语句。 MySQL 支持 LIMIT 语句来选取指定的条数数据, Oracle 可以使用 ROWNUM 来选取。 SQL Server / MS Access 语法SELECT

  • 使用带有规范和分页的Eclipse Link JPA 2.5.2,我对Oracle ROWNUM的执行方式有问题。Eclipse Link生成的查询如下: 为第一页运行该查询应返回0到25之间的行,为第二页运行相同的查询应返回25到50之间的行。 问题是第一页的记录也出现在第二页,我猜是因为submitteddate可以包含NULL值并且ORDER BY子句在ROWNUM和rnum条件或类似的东西