加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql – 怎样行使rownum

发布时间:2021-03-07 20:16:12 所属栏目:编程 来源:网络整理
导读:拜见英文谜底 How to get second largest or third largest entry from a table12个 SELECTing top N rows without ROWNUM?5个 我在oracle中有一个员工表,名称,人为和其他具体信息. 我想得到第二高的薪水,但无法取得. 这一个事变正常 with e_salary as (selec

拜见英文谜底 > How to get second largest or third largest entry from a table12个
> SELECTing top N rows without ROWNUM?5个
我在oracle中有一个员工表,名称,人为和其他具体信息.

我想得到第二高的薪水,但无法取得.

这一个事变正常

with e_salary as (select distinct salary from employee)
select salary from e_salary
order by salary desc

并给出输出:

450000

61000

60000

50000

40000

30000

20000

6000

可是,当我行使沟通的查询来获取第二高的行没有获得任何输出

select salary
  from ( with e_salary as (select distinct salary from employee)
         select salary from e_salary order by salary desc)
 where rownum = 2

可是当我用rownum< 2替代rownum = 2时,它会给出前两个记录的输出.请有人表明为什么rownum = 2不起浸染

办理要领

这将有用:

select salary from ( select salary,rownum as rn from (select salary
from e_salary order by salary desc)) where rn = 2;

为什么它不起浸染:

将ROWNUM分派给某行时,Oracle从1开始,仅在选择行时增进该值;也就是说,当满意WHERE子句中的全部前提时.因为我们的前提纲求ROWNUM大于2,因此不会选择任何行,而且ROWNUM永久不会高出1.

但愿你此刻很清晰.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读