两个十进制值的差返回负数,我需要一个零下限

时间:2019-01-03 16:35:45

标签: sql db2

我有一个简单的查询,得到2个百分比,然后取这2个百分比之间的差值

select
   round(t.priorDate * 100.0 / nullif(t.priorTotal, 0), 2) as priorPercent,
   round(t.currentDate * 100.0 / nullif(t.currentSales, 0), 2) as currentPercent,
   (round(t.currentDate * 100.0 / nullif(t.currentSales, 0), 2))-(round(t.priorDate * 100.0 / nullif(t.priorTotal, 0), 2)) as percentageDiff

从t;

这很好用,但是对于最终上传该数据,我只需要在percentageDiff列中添加正数或零,因此我想在其上设置一个底数为零,以便如果它是负数(在零以下)转换为零。

DB2中是否有一个标准?

1 个答案:

答案 0 :(得分:2)

您可以使用greatest()

 greatest(0, (round(t.currentDate * 100.0 / nullif(t.currentSales, 0), 2))-(round(t.priorDate * 100.0 / nullif(t.priorTotal, 0), 2))) as percentageDiff