我有一个简单的查询,得到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中是否有一个标准?
答案 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