10

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を見つけることができます

4

1 に答える 1

22
select ceil(a::numeric / 10) * 10
from (values (100), (111), (123)) s(a);
 ?column? 
----------
      100
      120
      130
于 2013-04-26T14:13:18.433 に答える