Thread: aggregate reverse
Hi all. I wolud like to know whether it is possible to reverse the behaviour of an aggregate? Say I have a string '1,2,3,4'.Is there a way to split those values to records?<br /><br />Regards and thanks in advance.<br /> mk<br />
Hello I am not sure if I understand well. On 01/02/2008, Marcin Krawczyk <jankes.mk@gmail.com> wrote: > Hi all. I wolud like to know whether it is possible to reverse the behaviour > of an aggregate? Say I have a string '1,2,3,4'. Is there a way to split > those values to records? create or replace function unpack(anyarray) returns setof anyelement as $$ select $1[i] from generate_series(array_lower($1,1), array_upper($1,1)) g(i) $$ language sql immutable; select * from unpack(string_to_array('1,2,3,4',','));unpack --------1234 (4 rows) Regards Pavel > > Regards and thanks in advance. > mk >
Yes, you got me well. That's exactly what I was trying to achieve. Thank you.
2008/2/1, Pavel Stehule <pavel.stehule@gmail.com>:
Hello
I am not sure if I understand well.
On 01/02/2008, Marcin Krawczyk <jankes.mk@gmail.com> wrote:
> Hi all. I wolud like to know whether it is possible to reverse the behaviour
> of an aggregate? Say I have a string '1,2,3,4'. Is there a way to split
> those values to records?
create or replace function unpack(anyarray)
returns setof anyelement as $$
select $1[i]
from generate_series(array_lower($1,1), array_upper($1,1)) g(i)
$$ language sql immutable;
select * from unpack(string_to_array('1,2,3,4',','));
unpack
--------
1
2
3
4
(4 rows)
Regards
Pavel
>
> Regards and thanks in advance.
> mk
>