2.oracle分页,找到员工表中薪水大于本部门平均薪水的员工

简介:  ROWNUM的知识点 A ROWNUM按照oracle的默认机制生成。 B rownum只能使用<=  <号,不能使用>  >= rownum的实现机制 rownum表示,返回的结果集的行号(是一个属性,固化到一行之中,不会因为你排序,而发生变化)。没有第一行,就没有第二行;没有第二行就没有第三行。

  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

);

 

 

目录
相关文章
|
Oracle 安全 关系型数据库
ORACLE 11g【安装流程】及部门问题解决,ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务 下
ORACLE 11g【安装流程】及部门问题解决,ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务 下
191 0
ORACLE 11g【安装流程】及部门问题解决,ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务   下
|
SQL Oracle 关系型数据库
ORACLE 11g【安装流程】及部门问题解决,ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务 上
ORACLE 11g【安装流程】及部门问题解决,ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务 上
399 0
ORACLE 11g【安装流程】及部门问题解决,ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务   上
|
SQL Oracle 关系型数据库
回顾JDBC之Oracle的CRUD以及分页细节
回顾JDBC之Oracle的CRUD以及分页细节
77 0
|
SQL Oracle 算法
Oracle总结【SQL细节、多表查询、分组查询、分页】下
在之前已经大概了解过Mysql数据库和学过相关的Oracle知识点,但是太久没用过Oracle了,就基本忘了…印象中就只有基本的SQL语句和相关一些概念….写下本博文的原因就是记载着Oracle一些以前没注意到的知识点…以后或许会有用… 实例与数据库概念
256 0
Oracle总结【SQL细节、多表查询、分组查询、分页】下
|
SQL Oracle 关系型数据库
Oracle总结【SQL细节、多表查询、分组查询、分页】上
在之前已经大概了解过Mysql数据库和学过相关的Oracle知识点,但是太久没用过Oracle了,就基本忘了…印象中就只有基本的SQL语句和相关一些概念….写下本博文的原因就是记载着Oracle一些以前没注意到的知识点…以后或许会有用… 实例与数据库概念
120 0
Oracle总结【SQL细节、多表查询、分组查询、分页】上
|
SQL Oracle 关系型数据库
Oracle、DB2、SQLSERVER、Mysql、Access分页SQL语句
最近把平时在项目中常用到的数据库分页sql总结了下。大家可以贴出分页更高效的sql语句。
161 0
|
SQL Oracle 关系型数据库
Oracle总结【SQL细节、多表查询、分组查询、分页】
前言 在之前已经大概了解过Mysql数据库和学过相关的Oracle知识点,但是太久没用过Oracle了,就基本忘了...印象中就只有基本的SQL语句和相关一些概念....写下本博文的原因就是记载着Oracle一些以前没注意到的知识点.
1404 0