Oracle 分页——实现TOP 功能,选取前几条记录

步骤

1、给原始查询语句加别名如temp

2、将temp中的rownum查出来

3、设定rownum范围

建表:

--创建新表
create table Staff_information
(
staff_id number(6) primary key, --员工编号
staff_name varchar(255),        --员工姓名
staff_department varchar(255),  --员工部门
staff_position varchar(255),    --员工职位
staff_salary number(6,2)        --员工工资
);
1、查询各个部门的经理中谁的工资最高
select * from 
(
    select * from 
    (
        select * from staff_information     --第一步:选取出职位是 '经理' 的所有数据
        where staff_position='经理'
    )
    order by staff_salary desc              --第二步:将结果集再按照 '工资' 进行 降序 排序
)
where rownum=1;                             --第三步:选取排好序的结果集的第一条数据
2、查询工资最高的前五名
select * from 
(
select * from staff_information order by staff_salary desc      --按照工资进行 降序 排序
)
where rownum<=5;    --选取结果集的前五条
3、查询所有员工的工资排名第 2-6 名的信息
select * from 
(
select rownum num,temp.* from 
(
select * from staff_information order by staff_salary desc     --第一步:按照工资从高到低进行排序
)
temp
where rownum<=6                                                --第二步:选取出前六行
)
where num>=2 and num<=6;                                       --第三步:选取 2-6 行

类推,2 和 6 可以换成 m ,n ,只要 n > m 即可

over.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值