SELECT 语句中的子查询

子查询(内部 SELECT 语句,其中一个 SELECT 语句嵌套在另一个 SELECT 语句中)可以返回多行或多个表达式,也可以不返回任何结果。每个子查询必须用括号分隔,并且都必须包含一个 Projection 子句和一个 FROM 子句,子查询本身可以包含其它子查询。

数据库服务器支持下列上下文中的子查询:
  • 嵌套在另一个 SELECT 语句的 Projection 子句中的 SELECT 语句
  • 嵌套在另一个 SELECT 语句中的 WHERE 子句中的 SELECT 语句
  • 嵌套在另一个 SELECT 语句的 FROM 子句中的 SELECT 语句

还可以在 INSERT 、DELETE 、MERGE 或 UPDATE 语句(子查询有效)的各种子句中指定子查询。

Projection 子句或 WHERE 子句中的子查询可以是相关的或是不相关的。当子查询产生的值取决于包含它的外部 SELECT 语句产生的值时,该子查询是相关的。有关更多信息,请参阅相关子查询

任何其它类型的子查询都被认为是不相关的。在 SELECT 语句的 FROM 子句中,只有不相关的子查询才是有效的。