在子查询的正文中,通常需要引用主查询的活动行中的列的值。
对主表中的列或表达式的引用被称作外部引用,并且这种子查询是相关的。
如果子查询结果至少包含一行,则EXISTS条件为TRUE;如果子查询结果一行也不包含,则条件为FALSE。
在子查询中对这些列的多次引用不会使这些函数被计算多次。
两种查询可以用于UPDATE语句的WHERE子句中:标量子查询和表子查询。
IN操作符是可以用于表子查询的四个SQL操作符之一。
如果子查询(必须含有一列)返回一行,则该行的值将与表达式进行比较。
如果初始子查询的列与递归子查询的列具有不同的域,则可能需要进行转换。
subquery或expression使用IN或NOTIN与test_expression比较后返回的所有空值都将返回UNKNOWN。
常量、函数以及由一个或多个运算符连接的列名、常量和函数的任意组合,或者是子查询。
如果一个子查询中引用了包含查询语句的一个或多个字段,则该子查询就称为相关性子查询。
SHIP3操作符包含一个语句,该语句表明标量子查询的结果放在一个主机变量中。
以上查询包含一个相关子查询,因为主查询和子查询依靠于同一个表,即employees表。
最后一节还描述了ALL、EXISTS和SOME或ANY谓词,这些谓词可用于表达子查询结果上的条件。
主查询不包含GROUPBY子句并且不是汇总查询,或者子查询恰好返回一个值。
子查询及其函数执行的次数会因优化器选择的访问路径的不同而异。
第一个优化解除了职员与sales_order表之间连接中的子查询嵌套。
这个扩展指定联接,可在WHERE子句中取代子查询来标识要删除的行。
该表达式可以是一个常量或一个列名,而列表可以是一组常量,通常为一个子查询。
数据库服务器会自动尝试转换由递归子查询返回的值,以便与初始查询的那些值匹配。
在这里,错误1242表示查询操作失败,由于子查询有问题。
与子查询一起使用,用于测试是否存在子查询返回的行。
这里我们所做的惟一更改就是去掉了原始查询中的子查询。
指定表、视图、用户定义函数或关联数据列的子查询的名称。
EXISTS在WHERE子句中使用EXISTS可以指示子查询至少应该返回一行。
INSERT语句中的SELECT子查询可用于将一个或多个表或视图中的值添加到另一个表中。
因此,一个子查询可以认为是语句范围内的临时表(内联视图)。
1·DB2 can then choose to perform the join or subquery at the database partition where the data is stored, instead of having to move data between database partitions.
于是DB 2就可以在存储数据的数据库分区上执行连接或子查询,而不必在数据库分区之间移动数据。
2·The last section also describes the ALL, EXISTS, and SOME or ANY predicates, which can be used to express conditions on subquery results.
最后一节还描述了 ALL、EXISTS 和 SOME 或 ANY 谓词,这些谓词可用于表达子查询结果上的条件。
3·This statement is represented in the example as subquery S1.
这个语句在示例中表示为子查询s1。
4·The subquery in this statement is absurdly simple, and completely unnecessary, but it does serve to illustrate a point.
这个子查询非常简单,并且完全没有必要,但是它能说明一点。
5·Instead of using subquery, we join two tables directly.
我们直接将两个表连接在一起,而不再使用子查询。