【发布时间】:2013-04-26 14:07:18
【问题描述】:
如何在 PostgreSQL 中轻松将数字向上舍入到 10 的倍数?
例子:
In Out
100 --> 100
111 --> 120
123 --> 130
样本数据:
create table sample(mynumber numeric);
insert into sample values (100);
insert into sample values (111);
insert into sample values (123);
我可以使用:
select
mynumber,
case
when mynumber = round(mynumber,-1) then mynumber
else round(mynumber,-1) + 10 end as result
from
sample;
这很好用,但看起来很难看。有没有更简单的方法来做到这一点?
你可以找到SQLFiddle here
【问题讨论】:
-
(number + 9)/10 可以直接应用于所有情况,以得到 10 的倍数。不确定如何在 postgresql 中使用。
-
数字可以是负数吗?是的,指定四舍五入“向上”。可以有小数吗?
-
就我而言,我确实只有正数。有小数位。