我已经尝试了以下查询:

select empno from (
                   select empno
                     from emp
                    order by sal desc
                  )
where rownum = 2

这不返回任何记录。

当我尝试这个查询
 select rownum,empno from (
                        select empno from emp order by sal desc)

它给了我这个输出:
ROWNUM  EMPNO
1       7802
2       7809
3       7813
4       7823

谁能告诉我我的第一个查询是什么问题?为什么在添加ROWNUM过滤器时不返回任何记录?

最佳答案



引用Understanding Oracle rownum

您应该以这种方式修改查询才能工作:

select empno
from
    (
    select empno, rownum as rn
    from (
          select empno
          from emp
          order by sal desc
          )
    )
where rn=2;

编辑:我已更正查询,以便在saltc的命令之后获得行编号

关于sql - 使用rownum选择表的第二行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9240192/

10-11 15:26