oracle高级查询之分页查询

分页查询显示员工信息,要求显示rownum,empno,ename,sal

1.每页显示四条信息 

2.显示第二页的员工

3按照月薪降序排序

select r  ,empno,ename,sal

(select  rownum r ,empno,ename,sal

from(  select  rownum,  empno,   emame,   sal ,from  emp  order  by   sal   desc)  e1

where  rownum<8)e2

where  r>5:;

解析:1,在oracle表中需要进行嵌套子查询来分页,mysql中用limit即可

           2, rownum为oracle中伪列,在数据列表中是没有的,使用时候需要写出来,如例子

          3,e1表为临时生成表,其本身含有伪列rownum 按照顺序排列,故可以rownum<8

          4,e2表中rownum,是其本身列,而不是隐藏的伪列,和其伪列重名,所以添加列名 r。

            因此可以不受伪列本身规则约 束,可以r>5

注意1.行号永远按照默认的顺序生成

        2.行号只能使用<,<=;不能使用>,>=

原文地址:https://www.cnblogs.com/libaowen609/p/12819700.html