postgresql分割字符串_拆分Postgresql中的逗号分隔字段,并对所有生成的表执行UNION ALL...

I have a table that contains a field of comma separated strings:

ID | fruits

-----------

1 | cherry,apple,grape

2 | apple,orange,peach

I want to create a normalized version of the table, like this:

ID | fruits

-----------

1 | cherry

1 | apple

1 | grape

2 | apple

2 | orange

2 | peach

The postgresql 8.4 documentation describes a regexp_split_to_table function that can turn a single table:

SELECT foo

FROM regexp_split_to_table('the quick brown fox jumped over the lazy dog',E'\\s+') AS

foo;

which gives you this:

foo

--------

the

quick

brown

fox

jumped

over

the

lazy

dog

(9 rows)

But that is just for a single field. What I want to do is some kind UNION applied to all the tables generated by splitting each field. Thank you.

解决方案

This should give you the output you're looking for:

SELECT

yourTable.ID,

regexp_split_to_table(yourTable.fruits, E',') AS split_fruits

FROM yourTable

EDIT: Fixed the regex.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值