Re: Populating an array from a select statement

Поиск
Список
Период
Сортировка
От Mag Gam
Тема Re: Populating an array from a select statement
Дата
Msg-id 1cbd6f830802271222w6299ef02l26620b126520156a@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Populating an array from a select statement  (John Gunther <postgresql@bucksvsbytes.com>)
Список pgsql-novice
Just out of curiously, why would you ever want to do that? (I am not saying your method is wrong, but SQL should be ample, no?)


On Mon, Feb 18, 2008 at 9:15 AM, John Gunther <postgresql@bucksvsbytes.com> wrote:
Thanks, Andreas. That was easy. I thought I new all the value expression types, but following your clue, I've learned the last two, ARRAY() and ROW(), from Section 4.2.

John


A. Kretschmer wrote:
am  Mon, dem 18.02.2008, um  8:22:14 -0500 mailte John Gunther folgendes: 
What's the most straightforward way to populate an array from a select 
statement? For example, using a fictional extension of SQL syntax, I'd like:

update users set emails=ARRAY[select email from address where userid=25] 
where id=25;

So if user 25  has emails john@domain.com, john@gmail.com, and 
john@yahoo.com in the address table,
select emails from user where id=25;
will return:                                        emails
----------------------------------------------------------------
{john@domain.com, john@gmail.com, and john@yahoo.com}   
You can use array_to_string() and array().

Example:

test=*# select * from mail_adr ;id |     email
----+--------------- 2 | foo@bar 2 | bar@batz 2 | foobar@barfoo
(3 rows)

test=*# select array_to_string(array(select email from mail_Adr where id=2), ', ');        array_to_string
----------------------------------foo@bar, bar@batz, foobar@barfoo
(1 row)


Andreas 


В списке pgsql-novice по дате отправления:

Предыдущее
От: "Mag Gam"
Дата:
Сообщение: Re: Logging Question
Следующее
От: Michael Glaesemann
Дата:
Сообщение: Re: data type of string literal