关于关联子查询--correlated subquery

oracle sql

文档地址:http://docs.oracle.com/cd/B19306_01/server.102/b14200/queries007.htm#sthref3193

 

Using Subqueries

 

     Oracle performs a correlated subquery when a nested subquery references a column from a table referred to a parent statement any number of levels above the subquery. The parent statement can be a SELECT, UPDATE, or DELETE statement in which the subquery is nested. A correlated subquery is evaluated once for each row processed by the parent statement. Oracle resolves unqualified columns in the subquery by looking in the tables named in the subquery and then in the tables named in the parent statement.

    A correlated subquery answers a multiple-part question whose answer depends on the value in each row processed by the parent statement. For example, you can use a correlated subquery to determine which employees earn more than the average salaries for their departments. In this case, the correlated subquery specifically computes the average salary for each department.

See Also:

"Using Correlated Subqueries: Examples"
\
地址:http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_10002.htm#i2066912
 
 

Using Correlated Subqueries: Examples The following examples show the general syntax of a correlated subquery:

SELECT select_list 
    FROM table1 t_alias1 
    WHERE expr operator 
        (SELECT column_list 
            FROM table2 t_alias2 
            WHERE t_alias1.column 
               operator t_alias2.column); 

UPDATE table1 t_alias1 
    SET column = 
        (SELECT expr 
            FROM table2 t_alias2 
            WHERE t_alias1.column = t_alias2.column); 

DELETE FROM table1 t_alias1 
    WHERE column operator 
        (SELECT expr 
            FROM table2 t_alias2 
            WHERE t_alias1.column = t_alias2.column); 

The following statement returns data about employees whose salaries exceed their department average. The following statement assigns an alias to employees, the table containing the salary information, and then uses the alias in a correlated subquery:

SELECT department_id, last_name, salary 
   FROM employees x 
   WHERE salary > (SELECT AVG(salary) 
      FROM employees 
      WHERE x.department_id = department_id) 
   ORDER BY department_id; 

For each row of the employees table, the parent query uses the correlated subquery to compute the average salary for members of the same department. The correlated subquery performs the following steps for each row of the employees table:---它的执行的步骤

  1. The department_id of the row is determined.

  2. The department_id is then used to evaluate the parent query.

  3. If the salary in that row is greater than the average salary of the departments of that row, then the row is returned. --从此处看,父查询在子查询确定了AVG(salary)以后,每一次都要执行比较,如果满足条件,那么父查询会将此行返回。即查询中有多少行,那么父查询就要执行多少次条件比较。

The subquery is evaluated once for each row of the employees table.


相关推荐

  • SQL 2005 开启OpenRowset/OpenDatasource的办法 1、开始—>所有程序—>MicrosoftSQLServer2005—>配置工具—>SQLServer外围应用配置器—>功能的外围应用配置器—>实例名—>DatabaseEngine—>即席远
  • 黑客工具集 常用黑客工具一、扫描工具X-scan3.1焦点出的扫描器,国内最优秀的安全扫描软件之一!非常专业的一个扫描器!X-way2.5这也上一个非常不错的扫描器哦!功能非常多!使用也不难,入侵必备工具!SuperScan3.0强大的TCP端口扫描器
  • Delphi+SQL 会计电算化系统的设计与实现 会计电算化系统的设计与实现——财务管理子系统摘要本系统是以会计学的基本理论为基础,我国会计电算化的管理体制为约束,结合中小企业的财务管理需求进行开发的。为实现会计电算化业务中的财务管理功能,系统采用了典型的信息管理系统(MIS)模式。本系统
  • 如何保持2个SQL6.5服务器的数据一致 升级到SqlServer7.0更好一些,因为在7中的订阅和出版功能很完善。不过在订阅到后还需要一定的后继处理手段。除了出版订阅之外,也可以用远程复制的办法,具体就是7中的dataexport和import,其中还可以加入sql语句定义要复制
  • GROUP BY 用法(转载)——group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函 groupby在我之前的工作中不一定用到,可惜groupby在一般的笔试测试的时候经常用到。所以今天刚开一个博客记录下groupby用法,为避免以后再犯这个错误。聚合函数求和函数——SUM()计数函数——COUNT()最大/最小值函数—MA
  • AutoLink系统安装说明 AutoLink系统安装说明目录AutoLink系统安装说明....1目录...1第一篇安装前的准备....2一、安装环境...21、服务器端:...22、浏览器端:...2二、安装文件...2三、Autolink数据库文件与工程文件夹pr
  • PL/SQL学习笔记 --设置屏幕输出为on,即在屏幕上显示相应的输出。SQL>setserveroutputon;--dbms_output.put_line();相当于Java中的System.out.println();SQL>begin2db
  • 跳槽先“充电”, 2008年到底该挑选哪些热门认证 日前,网络招聘机构104人力银行和《信息周刊》发布了2008年IT业薪资调查报告,调查显示,受访者中,超过80%的人存在跳槽意愿。不过在大家“跳槽”之前,还是应该要先充分的武装自己,让自己能够在职场中更有竞争力,这样才会找到让我们满意的新工
  • 10个热门IT证书 世界大公司通行证10个热门IT证书转眼间春节长假已经临近尾声,而这个时间也正是许多朋友想要改换门庭换个工作环境的时候,这也就是我们经常看到的“跳槽”。不过在大家“跳槽”之前,还是应该要先充分的
  • sqlserver游标概念与实例全面解说(转载) 引言我们先不讲游标的什么概念,步骤及语法,先来看一个例子:表一OriginSalary表二AddSalary现在有2张表,一张是OriginSalary表--工资表,有三个字段0_ID员工号(NVARCHAR)、O_Name员工姓名(NVA
  • 远程连接SQL Server 2000服务器的解决方法 一看ping服务器IP能否ping通。  这个实际上是看和远程sqlserver2000服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得确保远程sqlserver2000服务器的IP拼写正确。  二在Dos或命令行下输入te
  • SQLite嵌入VB.net开发快速入门教程 【声明:阿连原创技术文章,转载请注明出处】很长时间以来一直想寻觅研究一个能嵌入VB.net做单机带数据库的开发方案,终于有机会研究了一下SQLite数据库的应用,把方法记录一下跟大家分享一下,同时也当作是自己的一个学习笔记吧,废话不多说,开

你的评论

就没有什么想说的吗?

最新博客

关于我们 免责声明 移动版

©2017传客网    琼ICP备15003173号-2    

本站部分文章来源于互联网,版权归属于原作者。
本站所有转载文章言论不代表本站观点,如是侵犯了原作者的权利请发邮件联系站长(weishubao@126.com),我们收到后立即删除。
站内所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

X