我以前从未见过这个......我有一个这样的查询:
with q1 as
(select a.V_ID, a.D_ID, a.C_ID,
case when a.percent > 0 THEN 'Y' ELSE 'N' end L_val,
a.C_val
from ab_a_table a
where a.C_ID = '00000003' -- '00000007' -- test values
and a.B_VAL = '6010001'
and a.Q = '11234567')
select case
when ... /* rest of query omitted */
当我尝试运行它时,Oracle 抱怨说table or view does not exist
. 但它突出显示了第 3 行的“,”,而不是实际的表/视图名称:
当 a.percent > 0 THEN 'Y' ELSE 'N' end L_VAL 时, * 第 3 行的错误: ORA-00942: 表或视图不存在
我省略的查询的其余部分相当长且复杂——如有必要,我将对其进行清理并发布——现在我只想说这个错误仅在我添加第三个引用的子查询时才开始q1
。事实上,似乎我可以删除 3 个子查询中的任何一个,整个事情都会执行(尽管结果不正确),所以感觉就像我遇到了某种 Oracle 错误而不是纯 SQL 错误。同样有趣的是,我可以将主体q1
作为独立查询运行,并且这样做没有问题。只有当我运行整个查询时,它才会抱怨q1
.
有没有人经历过这个?
(使用 Oracle 10g)。
编辑:尝试添加AS
关键字。结果现在是:
a.perc_fault > 0 THEN 'Y' ELSE 'N' end AS L_VAL, a.C_VAL 的情况 * 第 3 行的错误: ORA-00942: 表或视图不存在
看起来星号在同一个位置,但是在下面,V
因为这个词L_VAL
已经移动了 3 个字符。很奇怪...