Обсуждение: Collection

Поиск
Список
Период
Сортировка

Collection

От
Ramesh T
Дата:
cast(COLLECT (r_id) as num) in oracle..

is their collect function in postgres plpgsql....?or  any alternate for this..?

thanks in advance,



Re: Collection

От
Raymond O'Donnell
Дата:
On 13/02/2015 13:13, Ramesh T wrote:
> cast(COLLECT (r_id) as num) in oracle..
>
> is their *collect *function in postgres plpgsql....?or  any alternate
> for this..?

I don't use Oracle, but I think array_agg() is the closest - it
aggregates the column into an array.

postgres=# create table test(a integer, b text);
CREATE TABLE
postgres=# insert into test values (1, 'abc');
INSERT 0 1
postgres=# insert into test values (2, 'def');
INSERT 0 1
postgres=# insert into test values (2, 'ghi');
INSERT 0 1
postgres=# select a, array_agg(b) from test group by a;
 a | array_agg
---+-----------
 1 | {abc}
 2 | {def,ghi}
(2 rows)


Ray.

--
Raymond O'Donnell :: Galway :: Ireland
rod@iol.ie


Re: Collection

От
Ramesh T
Дата:
i solved my problem using string_agg in tab_to_string
ex:-
select string_agg(s.Rnumber ::text,',' )AS number


On Fri, Feb 13, 2015 at 10:40 PM, Raymond O'Donnell <rod@iol.ie> wrote:
On 13/02/2015 13:13, Ramesh T wrote:
> cast(COLLECT (r_id) as num) in oracle..
>
> is their *collect *function in postgres plpgsql....?or  any alternate
> for this..?

I don't use Oracle, but I think array_agg() is the closest - it
aggregates the column into an array.

postgres=# create table test(a integer, b text);
CREATE TABLE
postgres=# insert into test values (1, 'abc');
INSERT 0 1
postgres=# insert into test values (2, 'def');
INSERT 0 1
postgres=# insert into test values (2, 'ghi');
INSERT 0 1
postgres=# select a, array_agg(b) from test group by a;
 a | array_agg
---+-----------
 1 | {abc}
 2 | {def,ghi}
(2 rows)


Ray.

--
Raymond O'Donnell :: Galway :: Ireland
rod@iol.ie