Oracle伪列(获取指定排序数据)

         在Oracle查询中获取已经根据条件排序好的数据(比如我要查询员工表,年龄根据从大往下排的顺序,然后再从中获取第几条数据到第几条的数据),思路其实已经很明显;

第一步:根据条件排序好;

例如:

select *

from employees

where manager_id>100

order by manager_id desc

第二步:把排序好的数据看成伪列数据;

第三步:在外面直接指定的第10条数据到第20的数据(rn>=10 and rn<=20);

思路步骤就如此,下面代码和运行结果:

思路一样但是方法有俩种写法:

第一种伪列语句:

关键字 rownum ;

Salary 是工资,employees 是员工表;

我这里查的是根据部门的员工id(employees_id)和工资就行分组,获取每组部门的最大工资,再根据各组部门的最大工资进行倒序排序,然后获取排在第6到第10的数据;

中间部分直接看成一列根据需要的条件和排序查询出来的数据,就因为这一点它才叫伪列,然后把伪列赋到rn上,进行获取指定的数据;

 

第一种的运行结果:

第二种伪列语句:

关键字:row_number() over();

注意:

  1. Orcale对大小写不敏感;
  2. Asc是顺序排序,默认可以不写;
  3. Desc是倒序排序;

这里查的是员工表,根据工资进行顺序排序,然后获取第10到20的员工数据;

 

第二种的运行结果:

    伪列虽然少用,但是也是必须掌握的语法;相比于其他的数据库,orcale的排序是比较复杂的;

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值