当我尝试在 Oracle SQL 中运行包含 CASE 表达式的查询时,在预期的位置找不到 FROM 关键字



这是数据库:输入图片描述

我需要显示员工的姓和名,然后是工资+佣金如果佣金不为空,否则只显示工资。

我正在尝试运行以下查询:

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

它总是显示以下错误:输入图片描述

有谁能帮我解决这个问题吗?

感谢

一个简单的选择是使用NVL:

SELECT LASTNAME, FIRSTNAME, SALARY, COMMISSION,
salary + nvl(commission, 0) as total_salary
FROM EMPLOYEE;

coalesce:

salary + coalesce(commission, 0)

case(但这次有效):

salary + case when commission is null then 0
else commission
end

最新更新