2 xianglicun1 xianglicun1 于 2014.08.24 11:32 提问

oracle sql语句疑问,关于嵌套查询语句的执行先后顺序

1.select A.END from
2. tableA A,tableB B
3.where A.X=B.Y
4.and A.END = (
5. select MAX(END) from tableA
6. where tableA.X = B.Y
7. );

我想问一下。按理max只有一个最值,为何这样写会出来多个。另外第5,6,7行是子查询,不是很理解为什么可以里面调用父查询里面的B。能详细说一下这个sql 完整的执行过程么

1个回答

weixin_42632763
weixin_42632763   2018.07.11 08:13

1.出现多条应该是因为A中最大的END值有多个 或者 这个最大值对应的B.Y有多个
2.子查询调用父类是应为父查询的范围大,对整个sql而言的,整个sql中都能调用,子类的范围就是针对子sql而言,里边的东西出了子查询就没了,子查询外边不能调里边的东西,比如表

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C#执行Oracle的Sql语句 参数顺序问题
OracleCommand添加参数,出现参数顺序问题,只需修改一个属性值
sql语句查询执行顺序
sql查询语句的处理步骤如下:--查询组合字段 (5)select (5-2) distinct(5-3) top(<top_specification>)(5-1)<select_list> --连表 (1)from (1-J)<left_table><join_type> join <right_table> on <on_predicate> (1-A)<left_table>
嵌套循环的update子查询语句
update b set b.object_name = (select a.object_name from a where a.object_id = b.object_id); 这个update语句,在select子查询语句中,需要先找到a表,然后执行where条件,但是其中的wh
三层嵌套oracle数据库记录分页sql语句
三层嵌套oracle数据库记录分页sql语句
SQL语句嵌套时的执行顺序
1.原语句:SELECT ID,NAME,STATES,(SELECT STATES FROM ITEM  WHERE ID=T.ITEM_ID) AS ITEM_END_FLAGFROM RESULT TWHERE 1=12.ITEM表中实际没有STATES列,但执行时语句却没报错,并且ITEM_END_FLAG列的结果与STATES列结果相同;3.通过SQL SERVER的“原执行计划”工具发...
C# Oracle同时执行多条sql语句
最近经常要在程序中创建不同的表 create table TableName ( Id NUMBER not null, Age NUMBER not null, Name NVARCHAR2(50) ); comment on co
跟我一起学Oracle 11g【9】----SQL 基础学习[嵌套查询]
跟我一起学Oracle 11g【9】----SQL 基础学习[嵌套查询] 前言 在前面2个章节,我们比较详细的介绍了一些SQL语句的基本用法,但是在我们实际的项目开发中,其实很多时候这些基本的用法远远不能满足我们项目的需求,这个时候就需要我们的嵌套查询。 在SQL语句中,一个select-from-where语句称为一耳光查询快。将一个查询快嵌套在另外一个的where子句
Oracle批处理:使用C# 自带Oracle驱动一次执行多条Sql语句
Oracle批处理:使用C# 自带Oracle驱动一次执行多条Sql语句
Oracle 11g——SQL 嵌套查询
前言在前面2个章节,我们比较详细的介绍了一些SQL语句的基本用法,但是在我们实际的项目开发中,其实很多时候这些基本的用法远远不能满足我们项目的需求,这个时候就需要我们的嵌套查询。在SQL语句中,一个select-from-where语句称为一耳光查询快。将一个查询快嵌套在另外一个的where子句或having 短语的条件的查询称为嵌套查询(Nested Query)。比如,先举一个简单的例子:sel
c#使用Oracle数据库执行多条查询语句,非存储过程方法
我们在C#使用MS Sql Server数据库时执行多条SQL查询的方法: select * from table1; select * from table2; 这样写起来非常方便,可是在Oracle中这样写是不行的。 C#访问Oracle数据库执行多条查询语句的方法: 需添加引用:Oracle.DataAccess.Client,该DLL可以到Oracle官网下载。 以下是