如果

时间:2018-06-19 10:32:00

标签: sql

我正在努力在我的SQL查询中创建一个计算字段。

查询报告了一些统计数据,而E列的数据来自数据库,我们将其称为“合同奖励价值”。

根据这个数字,我需要计算我们将收取的费用。我们之前使用过以下函数的excel:

=IF(E1<100000,2500+E1*0.005,IF(E1<1000000,5000+E1*0.005,IF(E1>=1000000,7500+E1*0.005)))

有没有机会在SQL中添加一行来计算我们需要根据上面的公式收取多少费用?为清楚起见,如果E1小于10万英镑,则费用为£2,500 + 0.5%;如果在10万英镑到100万英镑之间,则收费为5,000英镑+ 0.5%;如果超过1,000,000英镑,则费用为10,000英镑+ 0.5%。

我试图在类似的主题中寻找答案,但没有发现任何有用的答案。

2 个答案:

答案 0 :(得分:2)

在SQL中,您可以使用case表达式表达:

(case when E1 < 100000 then 2500 + E1 * 0.005
      when E1 < 1000000 then 5000 + E1 * 0.005
      when E1 >= 1000000 then 7500 + E1 * 0.005
 end) as fee

这假定E1是您数据中的一列。

答案 1 :(得分:0)

您可以创建一个能够提供预期结果的函数,并且可以在查询中调用该函数