轮数UP到10的倍数

Tom*_*eif 10 postgresql postgresql-9.1

如何在PostgreSQL中轻松将数字UP上升到10的倍数?

例:

In      Out
100 --> 100
111 --> 120
123 --> 130
Run Code Online (Sandbox Code Playgroud)

样本数据:

create table sample(mynumber numeric);

insert into sample values (100);
insert into sample values (111);
insert into sample values (123);
Run Code Online (Sandbox Code Playgroud)

我可以用:

select 
 mynumber,
 case
    when mynumber = round(mynumber,-1) then mynumber 
    else round(mynumber,-1) + 10 end as result
from
 sample;
Run Code Online (Sandbox Code Playgroud)

这很好用,但看起来很难看.有更简单的方法吗?

你可以在这里找到SQLFiddle

Clo*_*eto 19

select ceil(a::numeric / 10) * 10
from (values (100), (111), (123)) s(a);
 ?column? 
----------
      100
      120
      130
Run Code Online (Sandbox Code Playgroud)