将多个字符串行拆分为不同的行

时间:2016-04-19 15:46:25

标签: string postgresql split

我在Postgresql中有一个表。其中一个字段有多个字符串,我想把这个字符串放在不同的行中。 我用过:

id  lng  lat  descriptions
1   0.98 51   walk, wedding, bus

并插入另一个表格,如下所示:

id  lng   lat  descriptions
1   0.98   51   walk
1   0.98   51   wedding
1   0.98   51   bus

1 个答案:

答案 0 :(得分:1)

unnest()regexp_split_to_array()

一起使用
WITH tb(id,lng,lat,descriptions) AS ( VALUES
  (1,0.98,51,'walk, wedding, bus')
)
SELECT id,lng,lat,trim(unnest(regexp_split_to_array(descriptions,','))) AS descriptions FROM tb;

结果:

 id | lng  | lat | descriptions 
----+------+-----+--------------
  1 | 0.98 |  51 | walk
  1 | 0.98 |  51 | wedding
  1 | 0.98 |  51 | bus
(3 rows)