我有一个表,其中包含一个用逗号分隔的字符串字段:
ID | fruits ----------- 1 | cherry,apple,grape 2 | apple,orange,peach
我想创建表格的规范化版本,如下所示:
ID | fruits ----------- 1 | cherry 1 | apple 1 | grape 2 | apple 2 | orange 2 | peach
PostgreSQL 8.4文档描述了一个regexp_split_to_table函数,该函数可以打开一个表:
SELECT foo FROM regexp_split_to_table('the quick brown fox jumped over the lazy dog',E'\\s+') AS foo;
这给你这个:
foo -------- the quick brown fox jumped over the lazy dog (9 rows)
但这仅适用于单个领域。我想要做的是将某种UNION应用于通过拆分每个字段而生成的所有表。谢谢你。
这应该为您提供所需的输出:
SELECT yourTable.ID, regexp_split_to_table(yourTable.fruits, E',') AS split_fruits FROM yourTable
编辑:修复了正则表达式。