无效的标识符 SQL ORA-00904

Posted

技术标签:

【中文标题】无效的标识符 SQL ORA-00904【英文标题】:Invalid Identifier 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

【问题讨论】:

【参考方案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的列。 有并且我已经确定,我已经仔细检查了我正在查询的数据库,它在那里我只能认为它与查询抛出错误有关。 没关系,我在语法上发现了一个问题,感谢您的输入!

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

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

ORA-00904 PL/SQL 中的标识符无效

java.sql.SQLSyntaxErrorException: ORA-00904: : 标识符无效

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

无效的标识符 SQL ORA-00904

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