Re: Selecting from table into an array var
От | Merlin Moncure |
---|---|
Тема | Re: Selecting from table into an array var |
Дата | |
Msg-id | b42b73150912190656v14b814cfu1014d34d01022cc1@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Selecting from table into an array var (Postgres User <postgres.developer@gmail.com>) |
Ответы |
Re: Selecting from table into an array var
|
Список | pgsql-general |
On Sat, Dec 19, 2009 at 1:05 AM, Postgres User <postgres.developer@gmail.com> wrote: > > BEGIN > SELECT array_agg(category_id) INTO cat_list FROM ( > WITH RECURSIVE subcategory AS > ( > SELECT * FROM category > WHERE category_id = p_category_id > > UNION ALL > > SELECT c.* > FROM category AS c > INNER JOIN subcategory AS sc ON (c.category_id = sc.parent_id) > ) > SELECT category_id FROM subcategory > ORDER BY Coalesce(parent_id, 0) DESC > ) c; > END; works for me (i didn't put any data in though). the above is probably better written using array() notation as I mentioned above: SELECT array ( WITH RECURSIVE subcategory AS ( SELECT * FROM category WHERE category_id = p_category_id UNION ALL SELECT c.* FROM category AS c INNER JOIN subcategory AS sc ON (c.category_id = sc.parent_id) ) SELECT category_id FROM subcategory ORDER BY Coalesce(parent_id, 0) DESC ) INTO cat_list; Also if you want more than just the ID stacked in the array the above can be reworked in to an array of the 'category' type. merlin
В списке pgsql-general по дате отправления: