oracle的分页与合并查询

1.orcale的分页

一共有三种方式进行分页,使用rownum这种方式进行分页效率还可以且代码比较简单,其代码如下

查询第六到第十条数据

select * from(select a1.*,rownum rn from(select ename,empno,sal from emp order by sal) a1 where  rownum<10) where rn>6;

*rownum有点怪,在同一层时不支持别名操作,且只能输出rownum小于某个值的数据而不能输出大于某个值的数据

*所有的更改都要在最底层子函数进行

 

2.合并查询

有时在实际应用中,为了合并多个select语句的结果,可以使用集合操作符号union,union all,intersect,minus

这些查询方式极快,但不适合菜鸟级别的人

<1.union

   该操作符用于取得两个结果集的并集。当使用该操作符的时候会自动去掉结果集中重复行

   select ename,sal,job from emp where sal>2500 union

   select ename,sal,job from emp where job='MANAGER';

<2.union all 

    该操作与union相似,但不会取消重复行,而且不会排序

    select ename,sal,job from emp where sal>2500 union all 

    select ename,sal,job from emp where job='MANAGER';

<3.intersect

     该操作与union正好相反,它用于取得两个结果的交集

    select ename,sal,job from emp where sal>2500 intersect 

    select ename,sal,job from emp where job='MANAGER';

 <4.minus

     该操作符用于取得两个结果的差集,差集结果为第一个集合的结果减去第二个集合的结果

      select ename,sal,job from emp where sal>2500 minus

      select ename,sal,job from emp where job='MANAGER';

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章