模糊 ORA-00904 标识符无效错误

Posted

技术标签:

【中文标题】模糊 ORA-00904 标识符无效错误【英文标题】:Vague ORA-00904 Invalid Identifier error 【发布时间】:2016-03-29 12:29:40 【问题描述】:

我有一个查询,我在其中构建了一个值表,并将它与另一个查询联合起来。我希望返回一组结果,其中两个表之间的一个值不匹配。 (下面的查询示例)。每次我尝试执行时,都会收到可怕的无效标识符错误,但我不知道为什么。任何建议将不胜感激!

select * from (
select '1234567' as empno, 'A' as status, 'Active' as st_name from dual union all
select '89012345' as empno, 'DA' as status, 'Inactive' as st_name from dual) ft
union 
select id,status,statusnm from second_table st
where st.id = ft.empno
and st.statusnm <> ft.st_name;

有什么想法/建议吗?

【问题讨论】:

【参考方案1】:

你不想要union,你想要join。 . .它应该是明确的:

select st.*
from (select '1234567' as empno, 'A' as status, 'Active' as st_name from dual   
      union all
      select '89012345' as empno, 'DA' as status, 'Inactive' as st_name from dual
     ) ft join
     second_table st 
     on st.id = ft.empno and st.statusnm <> ft.st_name

【讨论】:

我知道这很愚蠢。感谢您的洞察力!

以上是关于模糊 ORA-00904 标识符无效错误的主要内容,如果未能解决你的问题,请参考以下文章

SQL 错误:ORA-00904:“GENDER”:无效标识符 00904。00000 -“%s:无效标识符”

ORA-00904 无效标识符错误

SQL 错误 ORA-00904:标识符无效

ORA-00904: sysdate 无效标识符错误

SQL 错误:ORA-00904:创建表期间标识符无效

ORACLE ORA-00904: 无效标识符错误