我是Oracle新手,在子查询中使用引用的列别名遇到了以下问题。
以下查询有效:
select r.exp1 + r.exp2 result from
(select 5+1 exp1, 6+7 exp2 from dual) r
但是,此查询会生成"r"."exp1"
无效标识符错误:
select r.exp1 + r.exp2 result from
(select 5+1 "exp1", 6+7 exp2 from dual) r
有没有办法在子查询中使用带引号的标识符,我真正想做的是:
select r.[First Sum] + r.exp2 result from
(select 5+1 "First Sum", 6+7 exp2 from dual) r
由于 迈克托马斯
答案 0 :(得分:5)
双引号使别名区分大小写,这就是为什么你的exp1示例不能按预期工作的原因。如果没有双引号,它的计算结果为“EXP1”,子查询中的数据为“exp1”。您应该能够继续在外部查询中使用双引号来实现您想要的目标:
select r."First Sum" + r.exp2 result
from (select 5+1 "First Sum", 6+7 exp2 from dual) r