[英]Oracle inline view column alias only working before joining tables and not when joining to tables
我有一个查询,看起来像这样:
select
...,
my_view.alias_name
from
tbl1 join
tbl2 on
tbl1.key = tbl2.key join
tbl3 on
tbl3.key = tbl3.key join
(
select
...,
(max(...) keep (...)) alias_name
from
...
) my_view on
tbl3.key = my_view.key
where
...;
它不起作用,因为未设置alias_name
(保留名称(max(...) keep (...))
,我不知道是否可以在select my_view.name_or_alias
引用该select my_view.name_or_alias
)这样可以将内联视图连接到表,但是奇怪的是,当我在内联视图之后连接表时,它确实可以工作。
select
...,
my_view.alias_name
from
(
select
...,
(max(...) keep (...)) alias_name
from
...
) my_view join
tbl3 on
my_view.key = tbl3.key join
tbl2 on
tbl3.key = tbl2.key join
tbl1 on
tbl2.key = tbl1.key
where
...;
是否有任何有关此的解释或文档,或者它是未定义/随机行为? 有什么方法可以使其与连接表的内联视图一起工作? 我找不到有关此的任何信息。
问题不是不是Oracle也不是查询,而是实际上是Microsoft Query本身,后者是引发错误的程序。
它已经老了,我希望我不必再用它了...
以下两个简化查询都可以在Excel VBA上正常运行,但第二个查询不适用于MS Query。
select
*
from
(
select
'X' dummy
from
dual
) my_view join
dual on
my_view.dummy = dual.dummy;
select
*
from
dual join
(
select
'X' dummy
from
dual
) my_view on
dual.dummy = my_view.dummy;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.