Oracle - 简单问题大分歧

时间:2011-05-26 21:15:10

标签: sql oracle

我是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

由于 迈克托马斯

1 个答案:

答案 0 :(得分:5)

双引号使别名区分大小写,这就是为什么你的exp1示例不能按预期工作的原因。如果没有双引号,它的计算结果为“EXP1”,子查询中的数据为“exp1”。您应该能够继续在外部查询中使用双引号来实现您想要的目标:

select r."First Sum" + r.exp2 result
from   (select 5+1 "First Sum", 6+7 exp2 from dual) r