Oracle分页查询综合示例

本文介绍如何使用Oracle SQL中的ROWNUM伪列进行特定范围的数据查询,包括如何查询表中的前几条记录、特定区间内的记录以及最高或最低工资的员工。
  • 查询emp表前5条记录   使用ROWNUM伪列,查询emp表前5条记录,SQL语句如下所示:
    select * from emp where rownum <= 5;
  • ROWNUM是一个伪列,对查询返回的行编号即行号,由1开始依次递增。注意:Oracle的rownum数值是在获取每行之后才赋予的,因此使用“rownum>数字”是查询不到数据的。
  • :查询第3-5条记录,无需排序

    首先,利用ROWNUM截取结果集中的部分数据,需要用到行内视图,SQL语句如下所示:

    1. select rownum num, e.* from emp e;

    上述SQL语句中给ROWNUM一个别名num。

    然后,将上述查询的结果作为一张虚表,其中,num为这张表中的一列。查询第3-5条记录,SQL语句如下所示:

    1. select * from (select rownum num, e.* from emp e)
    2. where num >= 3 and num <= 5;

  • 查询公司工资最高的三个人

    首先,按工资降序排列员工数据,SQL语句如下所示:

    select * from emp order by sal desc;
  • 然后,将上述查询的结果作为一张虚表,再根据ROWNUM的特性查询公司工资最高的三个人,SQL语句如下所示:

    1. select * from
    2. (select * from emp order by sal desc)
    3. where rownum <= 3;
  • 查询公司工资最低的五个人

    首先,按工资升序排列员工数据,SQL语句如下所示:

    1. select * from emp order by sal;

    然后,将上述查询的结果作为一张虚表,再根据ROWNUM的特性查询公司工资最低的五个人,SQL语句如下所示:

    1. select * from
    2. (select * from emp order by sal)
    3. where rownum <= 5;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值