Re: pg SQL question

From: David Fetter <david(at)fetter(dot)org>
To: "Ed L(dot)" <pgsql(at)bluepolka(dot)net>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: pg SQL question
Date: 2005-01-23 03:09:33
Message-ID: 20050123030933.GB17204@fetter.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Sat, Jan 22, 2005 at 02:03:58PM -0700, Ed L. wrote:
>
> There's probably an obvious answer for this, but I couldn't see it
> in the docs. What's the simplest way to concatenate multiple
> same-column values in SQL?
>
> For example, suppose I have table foo (key integer, id integer,
> entry varchar) with data
>
> key id entry
> 1 1 "Four score and seven years ago our fathers "
> 1 2 "brought forth on this continent, a new nation, "
> 1 3 "conceived in Liberty, and dedicated to the "
> 1 4 "proposition that all men are created equal."
>
> and I want to produce the following result:
>
> "Four score and seven years ago our fathers brought forth on this
> continent, a new nation, conceived in Liberty, and dedicated to the
> proposition that all men are created equal."

SELECT f.key, array_to_string(ARRAY(
SELECT entry
FROM foo
ORDER BY id
WHERE key = f.key
), '') AS "blurb"
FROM foo f;

> I know this could be done writing a plpgsql function, but it seems
> so basic, I thought there might be something I'm overlooking.

Well, it's not *totally* basic, and it draws on a few different
things, but you can do it with builtins.

Cheers,
D
--
David Fetter david(at)fetter(dot)org http://fetter.org/
phone: +1 510 893 6100 mobile: +1 415 235 3778

Remember to vote!

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Ian Barwick 2005-01-23 03:25:26 Re: SCHEMA compatibility with Oracle/DB2/Firebird
Previous Message Tom Lane 2005-01-23 02:47:07 Re: "Invalid message format" error from JDBC driver