如何在SQL的case语句中执行计算并将其显示为带有其他值的注释?



给出的表称为LEAVELEAVE有两列:Leavetype为varchar类型,allocated_days为number类型。

离开:

放在leavetype allocated_days生病的 5婚姻 10事故 20孕妇 90

公司更新了政策,现在的变化是

离开:

leavetype             allocated_days
sick                   add  5 days
marriage               add  5 days
accident               substract 5 days
maternity              multiply with 2

在SQL中的case的帮助下产生如下输出

离开:

leavetype             allocated_days    revised policy
sick                   5              10
marriage               10             15
accident               20             15
maternity              90             180

我尝试的代码是:

select leavetype,allocated_days
case 
when leavetype='sick' then  (allocated_days+5)
when leavetype='marriage' then (allocated_days+5)
when leavetype='accident' then (allocated_days-5)
when leavetype='maternity' then (allocatef_days*2)
else allocated_days
end "revised policy" from leave;

错误说:

from关键字未正确放置

我是一个有志于学习的人,我找不到任何相关的资源来参考和学习,请帮助

缺少逗号,但也可以简化您的查询:

select leavetype,allocated_days,
case 
when leavetype in ('sick','marriage') then (allocated_days+5)    
when leavetype='accident' then (allocated_days-5)
when leavetype='maternity' then (allocated_days*2)
else allocated_days
end "revised policy" from leave;

最新更新