如何填补一系列数字之间的差距?

时间:2017-11-29 13:57:11

标签: sql postgresql range data-cleaning

我有一个使用连字符输入数字范围的数据库,例如1-10,50-100,34-38。 我如何填写连字符所在的空白并在其间创建整数?

我需要这个:

  

1,2,3,4,5,6,7,8,9,10

由此:

  

1-10

1 个答案:

答案 0 :(得分:2)

像往常一样:

t=# with s(v) as (values('2-13'))
select generate_series(split_part(v,'-',1)::int,split_part(v,'-',2)::int) r from s;
 r
----
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
(12 rows)