【发布时间】:2017-08-10 06:44:43
【问题描述】:
我正在尝试比较 oracle 选择查询中的两个字段作为 case 语句的一部分,其中一个来自子查询,但我收到错误。
例如
select 1 as one,
(select 2 from dual) as two,
case when one=two then 'EQUAL'
else 'NOTEQUAL'
end match
from dual;
错误 ORA-00904:两个无效标识符
想想怎么改写?
提前致谢!
【问题讨论】:
-
您需要嵌套选择,然后比较是否相等。
-
一列和两列别名不在 case 语句的范围内。所以它不知道一两个是什么,你可以在 case 中使用完整的表达式,也可以在外部查询中使用 case。