ORA-00904 无效标识符错误

Posted

技术标签:

【中文标题】ORA-00904 无效标识符错误【英文标题】:ORA-00904 invalid identifier error 【发布时间】:2012-11-23 11:08:06 【问题描述】:

我收到 ORA-00904 'c' 无效标识符错误。这个别名有什么问题?

select NO, count(JOINT_NO) as c
from JOINT
WHERE HOLDER = 'Y' AND JOINT.c > 1
GROUP BY NO;

【问题讨论】:

【参考方案1】:

我认为您想获取计数 > 1 的记录。因此您不能在同一查询的 WHERE 子句中使用 Indentifier C

select NO, count(JOINT_NO) as c
from JOINT
WHERE HOLDER = 'Y'
GROUP BY NO
HAVING COUNT(JOINT_NO)>1;

【讨论】:

【参考方案2】:

JOINT 中不存在列c,导致您收到错误消息。

像这样更改您的查询:

select NO, count(JOINT_NO) as c
from JOINT
WHERE HOLDER = 'Y'
GROUP BY NO
HAVING count(JOINT_NO) > 1;

【讨论】:

【参考方案3】:

您可以在 FROM 子句中使用子选择(子查询):

 select T1.NO,T1.c
    from
    (
      select NO, count(JOINT_NO) as c
      from JOINT
      WHERE HOLDER = 'Y' 
      GROUP BY NO
    ) as T1
    where T1.c > 1

你也可以使用

    select NO, count(JOINT_NO) as c
    from JOINT
    WHERE HOLDER = 'Y'
    GROUP BY NO
    HAVING COUNT(JOINT_NO)>1

【讨论】:

您好,欢迎来到 ***。我想鼓励你解释你的答案(不一定是很长的解释),这样未来的读者就会明白发生了什么。我建议你看看How to Answer

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

ORA-00904 无效标识符错误

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

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

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

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

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