FROM 子句中子选择的 Oracle 语法



根据使用子查询,Oracle SQL接受选择语句的from子句中的子查询,例如

SELECT * FROM ( SELECT a FROM b );

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

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

在您链接的文档中,您可以看到table_reference可以是query_table_expression也可以是( subquery )

Oracle 语法图非常彻底:

您要查找的名称是:

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

由于可选lateral,这有点令人困惑。

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

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

你可以使用类似的东西

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

或者干脆使用

SELECT * FROM b
  WHERE (SELECT a FROM b)

但是这样,您将拥有 1 行以上。如果您不使用 Where 子句

相关内容

  • 没有找到相关文章