【问题标题】:ORA-00907: missing right parenthesis - only comes up when I add a where statement (ORA-00907: 缺少右括号 - 只有当我添加 where 语句 (
【发布时间】:2021-12-28 19:20:33
【问题描述】:

我正在使用一个字符串来访问一个将访问 ORACLE 数据的代码,我经常使用这个代码,但由于某种原因它现在无法正常工作。当我不包含 where 语句时,下面的代码可以正常工作,但是当我这样做时会出现上述错误。我已经查看了此错误的其他示例,但找不到与我正在做的匹配的任何示例。任何帮助,将不胜感激。起始年份是数字 2010

 select * from(
    select  
        count(distinct(fileid)) as cyic,
        to_number(substr(cym, 1, 4)) as cym,
    from group.data
    group by fileid, cym
    where to_number(substr(cym, 1, 4)) >= :start_yr
)               

【问题讨论】:

  • 你在as cym之后多了一个,
  • 为什么需要外层select * from ...
  • 另外,WHERE 子句应该在 GROUP BY 之前。

标签: python sql oracle


【解决方案1】:

问题是WHERE 子句必须在GROUP BY 子句之前。如果你需要在分组之后检查一些东西,那么你在GROUP BY之后使用HAVING

【讨论】:

  • 谢谢,我不敢相信它这么简单,我什么都试过了,但显然不是这样。
猜你喜欢
  • 2018-05-23
  • 2018-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多