根据Using Subqueries Oracle SQL 在 select 语句的 from-clause 中接受子查询,例如
SELECT * FROM ( SELECT a FROM b );
但是,查看SELECT 文档,我看不到在 from 子句中选择/子查询的可能性(例如,从规则table_reference
或join_clause
)。
我在这里遗漏了什么吗,这部分 SQL 语法是否记录在其他地方?或者这是文档的另一个不完整部分?
根据Using Subqueries Oracle SQL 在 select 语句的 from-clause 中接受子查询,例如
SELECT * FROM ( SELECT a FROM b );
但是,查看SELECT 文档,我看不到在 from 子句中选择/子查询的可能性(例如,从规则table_reference
或join_clause
)。
我在这里遗漏了什么吗,这部分 SQL 语法是否记录在其他地方?或者这是文档的另一个不完整部分?
在您链接的文档中,您可以看到 that table_reference
can be a query_table_expression
which can be a ( subquery )
.
Oracle 语法图非常详尽:
您要查找的名称是:
由于可选的lateral
.
我确实想知道是否允许在允许表达的任何地方使用横向。
每个派生表都必须有自己的别名。
你可以使用类似的东西
SELECT * FROM b
WHERE a >
(SELECT a FROM b
WHERE a='India')
或者干脆使用
SELECT * FROM b
WHERE (SELECT a FROM b)
但是这样一来,你就会有超过 1 行。如果你不会使用Where子句