2

根据Using Subqueries Oracle SQL 在 select 语句的 from-clause 中接受子查询,例如

SELECT * FROM ( SELECT a FROM b );

但是,查看SELECT 文档,我看不到在 from 子句中选择/子查询的可能性(例如,从规则table_referencejoin_clause)。

我在这里遗漏了什么吗,这部分 SQL 语法是否记录在其他地方?或者这是文档的另一个不完整部分?

4

3 回答 3

4

在您链接的文档中,您可以看到 that table_referencecan be a query_table_expressionwhich can be a ( subquery ).

于 2017-10-23T12:22:39.377 回答
3

Oracle 语法图非常详尽:

您要查找的名称是:

  • 表引用 --> 查询表表达式
  • 查询表表达式 --> 子查询

由于可选的lateral.

我确实想知道是否允许在允许表达的任何地方使用横向。

于 2017-10-23T12:24:25.117 回答
0

每个派生表都必须有自己的别名。

你可以使用类似的东西

  SELECT * FROM b
  WHERE a >
     (SELECT a FROM b
      WHERE a='India')

或者干脆使用

SELECT * FROM b
  WHERE (SELECT a FROM b)

但是这样一来,你就会有超过 1 行。如果你不会使用Where子句

于 2017-10-23T12:28:37.360 回答