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;

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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

);

2.oracle分页,找到员工表中薪水大于本部门平均薪水的员工的更多相关文章

  1. Oracle 取两个表中数据的交集并集差异集合

    Oracle 取两个表中数据的交集 关键字: Oracle 取两个表中数据的交集 INTERSECT Oracle 作为一个大型的关系数据库,日常应用中往往需要提取两个表的交集数据 例如现有如下表,要 ...

  2. [oracle/sql]求员工表中每个部门里薪水最高的员工,那种sql最优?

    开始正题前,先把我的数据库环境列出: # 类别 版本 1 操作系统 Win10 2 数据库 Oracle Database 11g Enterprise Edition Release 11.2.0. ...

  3. Oracle 11g对大表中添加DEFAULT值的NOT NULL字段速度有大幅度的提升

    在一张2000万的表上增加了一个字段并字段一个默认值,执行这条语句(alter table tablename add new_col default ‘col’)一个小时没有执行完,问我有没有其他解 ...

  4. Oracle分页存储过程及PLSQL中的调用脚本

    撰写过程:网上搜集测试了好多的Oracle分页存储过程代码,经整理后终于通过测试,特分享给大家 测试步骤:1.运行创建包命令;2.运行创建存储过程命令;3.运行调用分页存储过程语句 测试环境:wind ...

  5. Oracle数据库--解决单张表中数据量巨大(大数据、数据量上百万级别,后查询,更新数据等耗时剧增)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/QQ578473688/article/details/54561397 思路1:采用备份表 备份表中 ...

  6. Oracle、SQLServer 删除表中的重复数据,只保留一条记录

    原文地址: https://blog.csdn.net/yangwenxue_admin/article/details/51742426 https://www.cnblogs.com/spring ...

  7. oracle数据库的一个表中,怎么设置字段的默认值

    如果表已经存在,用如下方法设置默认值. alter table 表名 modify 字段名 default 默认值; 如test表中设置address字段为'浙江省',可用如下语句: alter ta ...

  8. 通过oracle闪回查看表中值的变更履历信息

    http://www.oracle.com/technetwork/cn/articles/week1-10gdba-093837-zhs.html 得到电影而不是图片:闪回版本查询 不需要设置,立即 ...

  9. Oracle 函数 “判断数据表中不存在的数据,才允许通过”

    create or replace function mca_detail_material_val(p_material_code VARCHAR2, --实参 p_material_name VA ...

随机推荐

  1. 编写Shell脚本的最佳实践,规范二

    需要养成的习惯如下: 代码有注释 #!/bin/bash # Written by steven # Name: mysqldump.sh # Version: v1.0 # Parameters : ...

  2. error while loading shared libraries:libmysqlclient.so.18 错误

    error while loading shared libraries:libmysqlclient.so.18错误 新手安装php的时候如果出现这种问题,解决办法很简单,就是查看你的mysql安装 ...

  3. Laravel使用db:seed生成测试数据

    创建 生成数据 定义字段 call方法调用 执行 seeder里如有多个可指定class 整理自www.laravist.com 视频教程

  4. AC日记——Paint Pearls hdu 5009

    Paint Pearls 思路: 离散化+dp+剪枝: dp是个n方的做法: 重要就在剪枝: 如果一个长度为n的区间,有大于根号n种颜色,还不如一个一个涂: 来,上代码: #include <c ...

  5. AC日记——玻璃切割 51nod 1562

    玻璃切割 思路: 并查集: 离线操作: 先把每次切割都存下来: 然后从后面不断合并切割: 然后每次更新最大长和宽: 记录答案: 要开longlong: 来,上代码 #include <cstdi ...

  6. adb install 安卓apk的包

    ➜  ~ adb install /Users/jkr/Downloads/QYVideoClient-debug.apk /Users/jkr/Downloads/QYVideoClient-deb ...

  7. Linq 连接运算符:Concat,Union

    //Concat()方法附加两个相同类型的序列,并返回一个新序列(集合)IList<string> strList = new List<string>() { "O ...

  8. HDU 5916: Harmonic Value Description

    题目描述 The harmonic value of the permutation $p_1,p_2,\cdots p_n$ is$$\sum_{i=1}^{n-1} gcd(p_i.p_{i+1} ...

  9. AOJ 0531:Paint Color(二维离散+imos)

    [题目链接] http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0531 [题目大意] 给出一张图,和一些矩形障碍物,求该图没被障碍物覆 ...

  10. 【bzoj1562】【[NOI2009]变换序列】匈牙利算法的性质利用

    (上不了p站我要死了,侵权度娘背锅) Description Input Output Sample Input 5 1 1 2 2 1 Sample Output 1 2 4 0 3 HINT 30 ...