Thread: Split a string to rows?
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
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
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
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
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
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
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
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
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