`

ORACLE三层子查询

阅读更多

以Oracle11G数据库中scott用户的emp雇员表为例

 

第一层查询

SELECT EMPNO, ENAME
FROM EMP 
ORDER BY EMPNO;

结果


第二层查询

SELECT ROWNUM, EMPNO, ENAME
FROM (SELECT EMPNO, ENAME
     FROM EMP 
     ORDER BY EMPNO)
WHERE ROWNUM <= 10;

结果


第三层查询

SELECT EMPNO, ENAME
FROM (SELECT ROWNUM RN, EMPNO, ENAME
     FROM (SELECT EMPNO, ENAME
          FROM EMP 
          ORDER BY EMPNO)
     WHERE ROWNUM <= 10)
WHERE RN > 5;

 结果

 

  • 大小: 9.4 KB
  • 大小: 9.2 KB
  • 大小: 3.8 KB
分享到:
评论

相关推荐

    Oracle子查询

    在这个例子中,外层查询选择了`ename`和`salary`字段,而内层子查询则用于计算所有记录中的最小薪资值。通过将这两个查询结合起来,我们可以得到每个薪资等于最低薪资的员工记录。 #### 示例二:比较不同部门的平均...

    Oracle高级SQL培训与讲解

    Oracle支持多层子查询,可以用于获取满足特定条件的数据集。 - 连接查询:包括内连接(INNER JOIN)、外连接(LEFT JOIN, RIGHT JOIN, FULL JOIN)和自连接,用于合并来自多个表的数据。 2. **聚合函数与分组** -...

    oracle rownum 的使用 和sqlserver有区别的!

    这个例子中,外层查询通过 WHERE 子句筛选内层子查询的结果集。 #### Oracle ROWNUM 与 SQL Server 的区别 1. **ROWNUM vs ROW_NUMBER():** - 在 SQL Server 中,ROW_NUMBER() 函数与 Oracle 中的 ROWNUM 功能...

    数据库oracle

    3. **外层查询**:`WHERE RN &gt;= 21`用于筛选出行号在21到40之间的记录,即第三页的数据。 这种方式有效地实现了分页查询,并且由于ROWNUM的计算是在内存中完成的,因此效率较高。 #### 分页查询的性能优化 虽然...

    oracle一条sql语句分页

    - **子查询的排序**:如果需要对查询结果进行排序,必须在内层子查询中添加`ORDER BY`子句。外层查询不能进行排序操作,因为ROWNUM的计算是在内层子查询中完成的。 - **性能考虑**:虽然使用ROWNUM可以有效实现分页...

    用SQL语句实现分页(Oracle版Sql Server版)

    - 第二层子查询(`SELECT TOP 10 * FROM USER WHERE ID &gt; ...`)则是基于第一层子查询的结果进行筛选,选择从第11行到第20行的数据。 这种方法虽然有效,但在大数据量下可能会影响性能。此外,从SQL Server 2012版本...

    Oracle基础知识

    这里,内层子查询首先找出每个部门的最高工资,外层查询则检查当前员工的工资是否等于其所在部门的最高工资。 另一种方法是找出每个部门中没有比自己工资更高的员工: ```sql SELECT * FROM emp a WHERE (SELECT ...

    oracle 不存在dual情况下注入.doc

    - 使用多层子查询和`rownum`函数来依次获取每个表的名称。例如: - `and (select length(table_name) from (select rownum r, table_name from (select rownum r, table_name from user_tables where rownum ) tw ...

    oracle学习笔记

    计算平均薪水等级最低的部门,涉及多层子查询和JOIN操作: ```sql select dname, t1.deptno, avg_sal, grade from ( select deptno, grade, avg_sal from salgrades join ( select deptno, avg(sal) avg_sal ...

    子查询课程实验

    - 多层子查询:一个查询内可以包含多个子查询,每个子查询的结果用于构造下一个子查询的条件。 - 联合子查询:将多个子查询的结果合并成一个结果集。 4. 子查询与连接(JOIN): - 子查询通常可以被JOIN操作替换...

    oracle_SQL中ROWID与ROWNUM的使用

    **解释**:内层子查询使用 `WHERE ROWNUM 筛选出前三行记录;外层查询使用 `WHERE no &gt;= 2` 再次筛选,最终返回的是第 2 行到第 3 行的数据。 ### ROWID 的使用 与 `ROWNUM` 不同,`ROWID` 是一个物理地址标识符,...

    oracle中emp表习题

    **解析**: 此SQL语句利用自连接查询的方式,通过内层子查询找到名为“SMITH”的员工的薪金,并在外层查询中筛选出薪金更高的员工。 #### 3. 列出所有员工的姓名及其直接上级的姓名 - **知识点**: 使用嵌套查询处理...

    在ORACLE中实现SELECT TOP N的方法

    - 第一层子查询添加了`ROWNUM AS RECNO`以标记行号。 - `WHERE ROWNUM 确保返回前3条记录。 - 最后通过`WHERE RECNO = 2`获取第二条记录。 ##### 3. 特定行号后的N条记录 如果需要获取从特定行号M开始的N条记录,...

    oracle培训资料

    - **多层子查询**:嵌套使用子查询来获取更复杂的结果。 - **存在子查询**:使用EXISTS关键字检查子查询是否返回至少一条记录。 #### 第八章:SQLPLUS实验 - **基本命令**:如SET、DESCRIBE等用于设置环境或查看表...

    oracle考试题11111.docx

    根据提供的文档内容,我们可以归纳出一系列Oracle数据库查询相关的知识点,主要围绕着SCOTT模式下的EMP和DEPT表展开。以下是对各个知识点的详细说明: ### 一、基本查询语句 1. **列出至少有一个员工的所有部门** ...

    三种数据库不同的取前10条记录

    在这个例子中,内层子查询先对表`tableName`进行了排序,并为每一条记录分配了行号;外层查询则通过`WHERE rnum 筛选出了前10条记录。 ### 二、MySQL数据库中获取前10条记录 MySQL数据库提供了更为简单的语法来...

    分页的sql总结

    在这个例子中,首先通过内层子查询获取前10000条记录的ROWID,然后从中筛选出第9981到9999条记录的ROWID。最后,主查询根据这些ROWID获取具体的行数据,并按照CID降序排列。这种方法的优点在于能够快速定位到所需...

    高性能sql语句讲解

    优化这类查询的一个方法是尽量减少嵌套层次,例如,通过将内层子查询的结果存储到临时表或视图中,然后在外层查询中引用这些结果。 #### 十二、通配符的合理使用 在使用通配符进行模糊匹配时,要注意其对查询性能的...

    SQL常见面试题.txt

    以上就是从给定文件中提取出的关于 SQL 常见面试题的关键知识点及解析,涵盖了删除表中重复记录、Oracle 中的分页以及如何找出每个部门员工工资最高的前三名等实用技巧。希望这些内容能帮助读者更好地理解和掌握 SQL...

Global site tag (gtag.js) - Google Analytics