给出的表称为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;