根据Using Subqueries,Oracle SQL在select语句的from子句中接受子查询,例如
SELECT * FROM ( SELECT a FROM b );
但是,查看SELECT documentation,我认为不可能在from子句中选择/子查询(例如,来自规则table_reference
或join_clause
)。
我在这里遗漏了一些东西,这部分SQL语法是否记录在别处?或者这是文档中另一个不完整的部分?
答案 0 :(得分:4)
在您关联的文档中,您可以看到table_reference
可以是query_table_expression
,可以是( subquery )
。
答案 1 :(得分:3)
Oracle语法图非常详尽:
您要找的名字是:
由于可选lateral
,这有点令人困惑。
我确实想知道在任何地方都允许横向允许表达。
答案 2 :(得分:0)
每个派生表都必须有自己的别名。
您可以使用类似
的内容 SELECT * FROM b
WHERE a >
(SELECT a FROM b
WHERE a='India')
或者只是使用
SELECT * FROM b
WHERE (SELECT a FROM b)
但是这样,你将有超过1行。如果你不使用 Where 子句