暂无图片
分享
章芋文
2020-02-18
请问PG在把单行字符串拆分成多行之后,怎么为每行加上ID?

比如某个表的字段值为a,b,c,d
通过逗号拆分,并给拆分后的数据加上RID,不知道有没有类似的分析函数?

--现在的值 ID QUEE 1 a,b,c,d --需要转换的值 ID RID QUEE 1 1 a 1 2 b 1 3 c 1 4 d

另外,RID按照拆分的顺序显示,如1对应a,4对应d。

收藏
分享
3条回答
默认
最新
joan
DROP TABLE IF EXISTS test; CREATE TABLE test(id int,name text); INSERT INTO test (id, name) VALUES (1, 'a,b,c,d'), (2, 'd,c,a'); SELECT t.id, row_number() over(PARTITION BY t.id), t.name FROM (SELECT id, regexp_split_to_table(name, ',') AS name FROM test) t;

不知道这个可否?

暂无图片 评论
暂无图片 有用 0
章芋文

感谢。如果将split和row_number over的操作分开,没办法保障拆分后的值和ID的顺序对应上。

我现在把数据源的值处理了下,改成如下了,直接按逗号split后再去处理了。

ID QUEE 1 1-a,2-b,3-c,4-d
暂无图片 评论
暂无图片 有用 0
章芋文
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏