加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Postgresql中拆分逗号分隔的字段,并对所有生成的表执行一个UNI

发布时间:2020-12-13 16:29:28 所属栏目:百科 来源:网络整理
导读:我有一个包含逗号分隔字符串的字段的表: ID | fruits-----------1 | cherry,apple,grape 2 | apple,orange,peach 我想创建一个规范化的表,如下所示: ID | fruits-----------1 | cherry 1 | apple 1 | grape2 | apple 2 | orange 2 | peach postgresql 8.4
我有一个包含逗号分隔字符串的字段的表:
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

编辑:修正正则表达式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读