【问题标题】:Vague ORA-00904 Invalid Identifier error模糊 ORA-00904 标识符无效错误
【发布时间】: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;

有什么想法/建议吗?

【问题讨论】:

    标签: sql oracle


    【解决方案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
    

    【讨论】:

    • 我知道这很愚蠢。感谢您的洞察力!
    猜你喜欢
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多