PostgreSQL 9.3:将列转换为行

时间:2018-03-14 09:30:47

标签: sql postgresql split postgresql-9.3

我想从这样的表创建一个视图:

表中的示例:

cola      column1        
-------------------
D1        val1, val2
D3        val3 

预期结果进入视图:

cola      column1        
-------------------
D1        val1
D1        val2
D3        val3        

我想划分column1的值并创建一个新行,但保留其他列的值。

1 个答案:

答案 0 :(得分:2)

只是聚合到数组并且不需要它:

t=# with c(cola,c1) as (values('d1','v1,v2'),('d2','v3'))
select cola,unnest(string_to_array(c1,',')) column1 from c;
 cola | column1
------+---------
 d1   | v1
 d1   | v2
 d2   | v3
(3 rows)

来自:

t=# with c(cola,c1) as (values('d1','v1,v2'),('d2','v3'))
select * from c;
 cola |  c1
------+-------
 d1   | v1,v2
 d2   | v3
(2 rows)