You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ORA-00907缺失右括号:添加WHERE语句后Oracle SQL报错求解

Oracle SQL ORA-00907 错误修复方案

错误根因

  • 语法顺序错误:Oracle SQL 要求WHERE过滤子句必须放在GROUP BY分组子句之前,你当前代码将WHERE写在GROUP BY之后,触发语法解析异常,最终抛出缺失右括号的错误。
  • SELECT列表冗余逗号:to_number(substr(cym, 1, 4)) as cym 末尾多写了一个逗号,会进一步干扰SQL解析逻辑。
  • 逻辑校验提示:若你的需求是按年份统计去重的fileid数量,GROUP BY无需携带fileid字段,否则每个分组仅对应一个fileid,count(distinct(fileid))返回值恒为1,失去统计意义;同时分组字段需和SELECT中非聚合字段保持一致,建议按截取后的年份值分组,而非原始cym字段。

修复后代码

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

内容的提问来源于stack exchange,提问作者Saara Jackman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 13:54:04