Oracle分页查询综合示例

  • 查询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;

你可能感兴趣的:(Oracle分页查询综合示例)