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

Oracle SQL含CASE表达式查询报错:FROM关键字位置异常求助

问题解决办法

错误原因

你的SQL语句存在两处语法问题,直接触发了FROM keyword not found where expected报错:

  • CASE表达式写法错误:你使用的CASE COMMISSION WHEN IS NOT NULL仅适用于等值匹配场景(比如CASE 字段 WHEN '指定值' THEN ...),无法用来判断非空条件。正确的条件判断格式应为CASE WHEN COMMISSION IS NOT NULL。
  • 列分隔符缺失:SELECT子句中COMMISSION后面未添加逗号,导致数据库解析语句时逻辑混乱,无法识别FROM关键字的正确位置。

修正后的SQL语句

场景1:需要显示薪资和佣金列

SELECT LASTNAME, FIRSTNAME, SALARY, COMMISSION,
       CASE WHEN COMMISSION IS NOT NULL THEN SALARY + COMMISSION
            ELSE SALARY
       END AS TOTAL_SALARY
FROM EMPLOYEE;

场景2:仅显示姓氏、名字和总薪资(匹配你的需求描述)

SELECT LASTNAME, FIRSTNAME,
       CASE WHEN COMMISSION IS NOT NULL THEN SALARY + COMMISSION
            ELSE SALARY
       END AS TOTAL_SALARY
FROM EMPLOYEE;

额外简化写法

如果你的数据库中COMMISSION字段的空值可按0处理,还能用COALESCE函数简化语句,效果完全一致:

SELECT LASTNAME, FIRSTNAME, SALARY + COALESCE(COMMISSION, 0) AS TOTAL_SALARY
FROM EMPLOYEE;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 14:07:08