【问题标题】:ORA-00904 invalid identifier errorORA-00904 无效标识符错误
【发布时间】: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;

【问题讨论】:

    标签: sql oracle


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

        【讨论】:

        • 您好,欢迎来到 stackoverflow。我想鼓励你解释你的答案(不一定是很长的解释),这样未来的读者就会明白发生了什么。我建议你看看How to Answer
        猜你喜欢
        • 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
        相关资源
        最近更新 更多