如何在 sql 的 case 语句中执行计算并将其显示为带有其他值的注释?
how can you perform calculation in case statement of sql and display it as comment with other values?
table给定叫LEAVE
LEAVE 有 2 列 Leavetype,类型为 varchar 类型,allocated_days 为 number 类型。
离开:
休假类型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 案例的帮助下产生这个输出
离开:
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 keyword not properly placed
我是一个学习有志者,我找不到任何相关资源可以参考和学习,请帮助
缺少逗号,但您也可以稍微简化您的查询:
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;
table给定叫LEAVE LEAVE 有 2 列 Leavetype,类型为 varchar 类型,allocated_days 为 number 类型。
离开:
休假类型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 案例的帮助下产生这个输出
离开:
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 keyword not properly placed
我是一个学习有志者,我找不到任何相关资源可以参考和学习,请帮助
缺少逗号,但您也可以稍微简化您的查询:
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;