我遇到了这行代码的问题。
我正在尝试计算或乘以.01到.04之间的数字乘以.25以及.04之上的任何数字乘以1.当我将数字乘以.04(例如.05)乘以它时,它会起作用。 .01但是低于.05的任何东西都不会乘以.25。有人可以帮忙吗?谢谢!
这就是我所拥有的:
这是新的
CASE WHEN curOther IS THEN curOther + .01 ELSE (curOther * .25) + curOther END
这是原作
CASE WHEN curOther > .04 then .01 ELSE curOther * .25 + curOther END
答案 0 :(得分:0)
CASE WHEN curOther <= .04 THEN curOther*1.01 ELSE curOther*1.25 END
答案 1 :(得分:0)
您似乎在原始CASE声明中做了两件不同的事情。
您的“原始”声明是这样的:
CASE WHEN curOther > .04 then .01 ELSE curOther * .25 + curOther END
这将返回以下两个值之一:
.01
(curOther * .25) + curOther
如果起始curOther值为10.0,则返回:
.01
12.50
您确实希望CASE语句返回:
10.10
12.50
在这种情况下,您的CASE声明应该是:
CASE
WHEN curOther > .04
THEN (curOther * .01) + curOther
ELSE (curOther * .25) + curOther
END
可以进一步简化为:
CASE
WHEN curOther > .04
THEN curOther * 1.01
ELSE curOther * 1.25
END
您确实希望CASE语句返回:
1.01
1.25
执行此操作后,您将其他值乘以此值(curOther * {CASE}
),从而产生:
10.10
12.50
如果是这样,您的CASE声明应为:
CASE
WHEN curOther > .04
THEN 1.01
ELSE 1.25
END
您正在尝试返回会增加的乘数:
.01
.25
如果初始值为10.0,您将执行以下操作:
(curOther * {CASE}) + curOther
这会给你:
10.10
12.50
在哪种情况下,您应该使用:
CASE
WHEN curOther > .04
THEN .01
ELSE .25
END