具有“如果”条件的案例陈述?

时间:2018-08-08 02:37:34

标签: postgresql

我花了1个小时的大部分时间在这里搜索操作。我非常感谢您解决此问题的任何帮助:

,CASE WHEN days > 30 and amount1 > amount3  then (amount3 *  .20)
 but if amount2 < amount1 then (amount1 *.20) else NULL end as amountcharged

我知道上面的代码不正确。我添加了“但是”以更好地解释我要做什么...非常感谢!

1 个答案:

答案 0 :(得分:1)

您可以在您的when语句上链接多个case子句,这些子句基本上就像是else if一样工作-从您的问题中的“但是”开始您需要:

case when days > 30 and amount1 > amount3
     then (amount3 * .20)
     when amount2 < amount1
     then (amount1 * .20)
     else NULL
end as amountcharged

可以被认为是伪代码逻辑:

if days > 30 and amount1 > amount3
    then (amount3 * .20)
else if amount2 < amount1
    then (amount1 * .20)
else NULL
end