if 语句 Oracle SQL 的 20% 折扣



我有一些oracle sql代码,我正在尝试在产品数量大于20时应用50%的折扣,但我正在努力采取什么方法,我还有一个检查以确保否则总成本等于产品数量*单位成本。你会建议什么方法?

SQL 中没有 "if" 语句,但有case表达式。像这样:

select .....,
       quantity * unit_cost * case when quantity > 50 then 0.8 else 1 end as total_cost
from   .....
where  .....    (etc.)

当数量大于 50 时,case表达式(从单词 case 到单词 end (含(的计算结果为 0.8(这与应用 20% 的折扣相同:客户只需支付他们本来支付的费用的 80%(。如果数量小于或等于 50,则将数量乘以单位成本(乘以 1,这与忽略最后一个乘法相同(。

最新更新