【问题标题】:Invalid Identifier SQL ORA-00904无效的标识符 SQL ORA-00904
【发布时间】:2018-12-05 03:22:35
【问题描述】:

您好,我正在尝试执行我创建的查询以计算国家/地区 ID,但是我在 Group BY 行 4 上收到 ORA-00904 错误,我的 OEHR_LOCATIONS.REGION_ID。

SELECT OEHR_COUNTRIES.COUNTRY_ID, REGION_ID, COUNT (OEHR_COUNTRIES.COUNTRY_ID)
FROM OEHR_COUNTRIES, OEHR_LOCATIONS
WHERE OEHR_COUNTRIES.COUNTRY_ID = OEHR_LOCATIONS.COUNTRY_ID
GROUP BY OEHR_COUNTRIES.COUNTRY_ID, OEHR_LOCATIONS.REGION_ID

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    我无法说明可能导致您的错误的原因,但我鼓励您将查询写成这样:

    SELECT c.COUNTRY_ID, l.REGION_ID, COUNT(*)
    FROM OEHR_COUNTRIES c JOIN
         OEHR_LOCATIONS l
         ON c.COUNTRY_ID = l.COUNTRY_ID
    GROUP BY c.COUNTRY_ID, l.REGION_ID;
    

    注意事项:

    • 从不FROM 子句中使用逗号。 始终使用正确、明确、标准 JOIN 语法。
    • 表格别名使表格更易于书写和阅读。
    • 无需计算从不为NULL 的列。这就是COUNT(*) 所做的。

    【讨论】:

    • 嗨,戈登,感谢您的输入,我已重做查询,但是在 GROUP BY 行的同一行代码中,我仍然收到相同的无效标识符错误。
    • 想必,OEHR_LOCATIONS中没有名为REGION_ID的列。
    • 有并且我已经确定,我已经仔细检查了我正在查询的数据库,它在那里我只能认为它与查询抛出错误有关。
    • 没关系,我在语法上发现了一个问题,感谢您的输入!
    猜你喜欢
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    相关资源
    最近更新 更多