如何使用单个查询将行拆分为多行?

时间:2015-11-25 14:40:05

标签: sql postgresql

此:

column_A|column_B|column_C
a|a,b,c|b
b|a|b
c|a|c

应该像这样结束:

column_A|column_B|column_C
a|a|b
a|b|b
a|c|b
b|a|b
c|a|c

column_B具有类似CSV的数据。列由任意字符分隔,在本例中为逗号。

1 个答案:

答案 0 :(得分:5)

您应该可以通过string_to_arrayunnest的组合来实现这一目标:

SELECT column_a, unnest(string_to_array(column_b,',')), column_c 
FROM   tablename;

SQLFiddle

那就是说,你没有提供足够的数据类型信息,如果它作为分隔符,任意字符永远不会是任意的。