博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2.oracle分页,找到员工表中薪水大于本部门平均薪水的员工
阅读量:6370 次
发布时间:2019-06-23

本文共 1101 字,大约阅读时间需要 3 分钟。


  1. ROWNUM的知识点

    A ROWNUM依照oracle的默认机制生成。

    B rownum仅仅能使用<=  <号,不能使用>  >=

  2. rownum的实现机制

    rownum表示,返回的结果集的行号(是一个属性,固化到一行之中。不会由于你排序,而发生变化)。没有第一行,就没有第二行;没有第二行就没有第三行。

  3. Oracle Top-N

select rownum,empno,ename,sal

from (select empno,ename,sal

     from emp

     order by sal desc)

where rownum <= 3;

4 5=<x<=8之间的数据(分页)

select r,empno,ename,sal

from

    (

          select rownum r,empno,ename,sal

          from (

                select empno,ename,sal

                from emp

                order by sal desc

               )

          where rownum <=8

     )

where r >= 5;

总结:内存排序。外层选

Oracle分页思想总结:

(内层排序。外层选,须要三层查询)

内:排序

中:使用rownum选择前n条。并给rownum指定一个别名,以供最外层过滤使用。

外:去掉前m条结果。

  1. 找到员工表中薪水大于本部门平均薪水的员工

    员工表   本部门平均薪水

    思路1:查员工的薪水   本部门平均薪水

          本部门关系

     

    要去本部门的薪水,须要求部门的薪水,要对部门分组è分组

   

思路2:查找员工表 部门薪水表  =====》多表查询

思路3:等值连接条件

方法1

select e.empno,e.ename,e.sal,d.avgsal

 from emp e,

           (select deptno,avg(sal) avgsal

            from emp

            group by deptno) d

 where e.deptno=d.deptno and e.sal > d.avgsal;

方法2

相关子查询:主查询的參数,让子查询用,通常是通过别名技术。

一般子查询:子查询的结果,被主查询使用

select empno,ename,sal,(select avg(sal) from emp where deptno = e.deptno) avgsal

from emp e

where sal > (

            select avg(sal)

            from emp

            where deptno = e.deptno

);

 

 

转载于:https://www.cnblogs.com/clnchanpin/p/7251840.html

你可能感兴趣的文章
项目开发设计模式理解之MVC模式
查看>>
如何让设置样式让网站文字无法复制
查看>>
Mushup Service技术
查看>>
CentOS7.3安装JIRA7.10
查看>>
ubuntu镜像快速下载
查看>>
接口用例、实践参考
查看>>
BGP默认路由配置实例
查看>>
Ajax
查看>>
发测试邮件或垃圾邮件node脚本
查看>>
python django day 1
查看>>
IOS之富文本编辑
查看>>
jQuery end()方法 by keneks
查看>>
如何测试一个网页登陆界面
查看>>
Elasticsearch 索引操作
查看>>
Java开发中的23种设计模式详解(转)
查看>>
使用NUnit做单元测试(总结版)
查看>>
100 IncDec序列
查看>>
(1)Microsoft office Word 2013版本操作入门_常用功能区
查看>>
C++重载的时候会优先匹配非模块函数
查看>>
C# 托管和非托管混合编程
查看>>