gpt4 book ai didi

sql - 在 Postgresql 中拆分以逗号分隔的字段并对所有结果表执行 UNION ALL

转载 作者:行者123 更新时间:2023-11-29 11:09:39 35 4
gpt4 key购买 nike

我有一个包含逗号分隔字符串字段的表:

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

编辑:修复了正则表达式。

关于sql - 在 Postgresql 中拆分以逗号分隔的字段并对所有结果表执行 UNION ALL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9232572/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com