甲骨文-小问题的大影响

问题描述

| 我是Oracle新手,在子查询中使用带引号的列别名遇到了以下问题。 以下查询有效:
select r.exp1 + r.exp2 result from
  (select 5+1 exp1,6+7 exp2 from dual) r
但是,此查询生成一个“ 1”个无效标识符错误
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
谢谢 迈克·托马斯     

解决方法

双引号使别名区分大小写,这就是为什么exp1示例无法按预期工作的原因。如果不带双引号,则计算结果为\“ EXP1 \”,在子查询中,该值为\“ exp1 \”。您应该只能够继续在外部查询中使用双引号来实现所需的功能:
select r.\"First Sum\" + r.exp2 result
from   (select 5+1 \"First Sum\",6+7 exp2 from dual) r