Thread: Split a string to rows?

Split a string to rows?

From
Emi Lu
Date:
Hello,

Is there a function to split a string to different rows?

For example, t1(id, col1)
values(1, 'a, b, c');

select id, string_split_to_row(col1, ',');

Return:
=========
1, a
1, b
1, c

Thanks alot!
Emi




Re: Split a string to rows?

From
Steve Crawford
Date:
On 01/07/2013 11:44 AM, Emi Lu wrote:
>
> Is there a function to split a string to different rows?...
>
>
Have you looked at regexp_split_to_table?

Cheers,
Steve



Re: Split a string to rows?

From
"Jonathan S. Katz"
Date:
On Jan 7, 2013, at 2:44 PM, Emi Lu wrote:

> Hello,
>
> Is there a function to split a string to different rows?
>
> For example, t1(id, col1)
> values(1, 'a, b, c');
>
> select id, string_split_to_row(col1, ',');
>
> Return:
> =========
> 1, a
> 1, b
> 1, c


You can probably use some combination of "string_to_array" and "unnest"

e.g.

SELECT unnest(string_to_array('a,b,c', ','));
unnest
--------abc
(3 rows)

If you need a more complex string splitting mechanism, there is the "regexp_split_to_array" function.

Jonathan


Re: Split a string to rows?

From
Emi Lu
Date:
Thanks a lot! I just noticed that my postgresql is 8.3(unnest function 
is not there by default). Is there a way that I could download and load 
only this function from somewhere?

Thanks again!
Emi


On 01/07/2013 02:58 PM, Jonathan S. Katz wrote:
> On Jan 7, 2013, at 2:44 PM, Emi Lu wrote:
>
>> Hello,
>>
>> Is there a function to split a string to different rows?
>>
>> For example, t1(id, col1)
>> values(1, 'a, b, c');
>>
>> select id, string_split_to_row(col1, ',');
>>
>> Return:
>> =========
>> 1, a
>> 1, b
>> 1, c
>
>
> You can probably use some combination of "string_to_array" and "unnest"
>
> e.g.
>
> SELECT unnest(string_to_array('a,b,c', ','));
>
>   unnest
> --------
>   a
>   b
>   c
> (3 rows)
>
> If you need a more complex string splitting mechanism, there is the "regexp_split_to_array" function.
>
> Jonathan
>


-- 
Emi Lu, ENCS, Concordia University, Montreal H3G 1M8
emilu@encs.concordia.ca        +1 514 848-2424 x5884



Re: Split a string to rows?

From
Emi Lu
Date:
All right. I found the function.
http://wiki.postgresql.org/wiki/Array_Unnest

Thanks a lot!
Emi

On 01/07/2013 03:16 PM, Emi Lu wrote:
> Thanks a lot! I just noticed that my postgresql is 8.3(unnest function
> is not there by default). Is there a way that I could download and load
> only this function from somewhere?
>
> Thanks again!
> Emi
>
>
> On 01/07/2013 02:58 PM, Jonathan S. Katz wrote:
>> On Jan 7, 2013, at 2:44 PM, Emi Lu wrote:
>>
>>> Hello,
>>>
>>> Is there a function to split a string to different rows?
>>>
>>> For example, t1(id, col1)
>>> values(1, 'a, b, c');
>>>
>>> select id, string_split_to_row(col1, ',');
>>>
>>> Return:
>>> =========
>>> 1, a
>>> 1, b
>>> 1, c
>>
>>
>> You can probably use some combination of "string_to_array" and "unnest"
>>
>> e.g.
>>
>> SELECT unnest(string_to_array('a,b,c', ','));
>>
>>   unnest
>> --------
>>   a
>>   b
>>   c
>> (3 rows)
>>
>> If you need a more complex string splitting mechanism, there is the
>> "regexp_split_to_array" function.
>>
>> Jonathan
>>
>
>


-- 
Emi Lu, ENCS, Concordia University, Montreal H3G 1M8
emilu@encs.concordia.ca        +1 514 848-2424 x5884



Re: Split a string to rows?

From
Thomas Kellerer
Date:
Emi Lu wrote on 07.01.2013 21:16:
> Thanks a lot! I just noticed that my postgresql is 8.3(unnest
> function is not there by default). Is there a way that I could
> download and load only this function from somewhere? 

Are you aware that 8.3 will be de-suppported as of next month?

You should really think about an upgrade *now*

Thomas






Re: Split a string to rows?

From
Emi Lu
Date:
Hello Thomas,

>> Thanks a lot! I just noticed that my postgresql is 8.3(unnest
>> function is not there by default). Is there a way that I could
>> download and load only this function from somewhere?
>
>
> Are you aware that 8.3 will be de-suppported as of next month?
>
> You should really think about an upgrade *now*
>

http://www.postgresql.org/support/versioning/

Although 8.3 reaches EOL date, it says that "Supported=Yes" for 8.3.

I believe that "Supported" would be fine, wouldn't it?

Emi













Re: Split a string to rows?

From
"ktm@rice.edu"
Date:
On Tue, Jan 08, 2013 at 09:34:24AM -0500, Emi Lu wrote:
> Hello Thomas,
> 
> >>Thanks a lot! I just noticed that my postgresql is 8.3(unnest
> >>function is not there by default). Is there a way that I could
> >>download and load only this function from somewhere?
> >
> >
> >Are you aware that 8.3 will be de-suppported as of next month?
> >
> >You should really think about an upgrade *now*
> >
> 
> http://www.postgresql.org/support/versioning/
> 
> Although 8.3 reaches EOL date, it says that "Supported=Yes" for 8.3.
> 
> I believe that "Supported" would be fine, wouldn't it?
> 
> Emi
> 

Hi Emi,

It will be supported until February 2013. You have about 1 month left.

Regards,
Ken



Re: Split a string to rows?

From
Dave Page
Date:
On Tue, Jan 8, 2013 at 2:34 PM, Emi Lu <emilu@encs.concordia.ca> wrote:
> Hello Thomas,
>
>
>>> Thanks a lot! I just noticed that my postgresql is 8.3(unnest
>>> function is not there by default). Is there a way that I could
>>> download and load only this function from somewhere?
>>
>>
>>
>> Are you aware that 8.3 will be de-suppported as of next month?
>>
>> You should really think about an upgrade *now*
>>
>
> http://www.postgresql.org/support/versioning/
>
> Although 8.3 reaches EOL date, it says that "Supported=Yes" for 8.3.
>
> I believe that "Supported" would be fine, wouldn't it?

It is supported until February (or more precisely, until the next
point release after then, which will be the final wrapup release). At
that point, there will be no more releases or bug fixes.

Start thinking about upgrading now, as Thomas suggests.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company