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

ORA-00905: missing keyword报错求助:Oracle SQL统计查询问题

ORA-00905错误排查与正确SQL写法

你遇到的ORA-00905: missing keyword错误,是因为CASE表达式缺少了END关键字——Oracle要求CASE WHEN ... THEN ...的结构必须以END来闭合,否则会被判定为语法不完整。

修正后的正确SQL语句如下:

SELECT 
    COUNT(CASE WHEN SAL IS NOT NULL THEN 1 END) AS SALARIED_DEPT30,
    COUNT(CASE WHEN COMM IS NOT NULL THEN 1 END) AS COMM_DEPT30
FROM
    EMP
WHERE 
    DEPTNO = 30;

说明:

  • 这个语句会独立统计部门30中两个指标:SALARIED_DEPT30是有工资(SAL非空)的员工数量,COMM_DEPT30是有佣金(COMM非空)的员工数量。
  • 统计逻辑完全独立:哪怕员工只有工资没有佣金,也会被计入SALARIED_DEPT30;反之只有佣金没有工资的员工,会被计入COMM_DEPT30,完全匹配你的需求。
  • 你之前想避免的查询语句,是统计同时满足工资和佣金都非空的员工数,和你的需求完全不同,修正后的语句彻底解决了这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 17:29:57