From: | "Ross J(dot) Reedstrom" <reedstrm(at)wallace(dot)ece(dot)rice(dot)edu> |
---|---|
To: | Herouth Maoz <herouth(at)oumail(dot)openu(dot)ac(dot)il> |
Cc: | Mike Field <mike(at)fieldco(dot)com>, pgsql-sql(at)postgreSQL(dot)org |
Subject: | Re: [SQL] Multiple values for a field |
Date: | 1999-08-15 15:36:26 |
Message-ID: | 19990815103626.A19124@wallace.ece.rice.edu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On Sun, Aug 15, 1999 at 04:26:31PM +0300, Herouth Maoz wrote:
>
> An alternative may be to create an aggregate function that will give you
> the comma-separated list you desired upon request:
>
> CREATE AGGREGATE textcat_all
> (
> basetype = text,
> sfunc1 = textcat,
> stype1 = text
> );
>
> Then you can do something like:
>
> SELECT da.docid, textcat_all( a.Author_name || ',' )
> FROM docs_authors da, authors a
> WHERE da.authorid = a.id
> GROUP BY da.docid;
>
> This will return a comma-separated list of author names for each doc id,
> assuming the actual author name is in a separate table. There is an extra
> comma at the end, but I don't suppose that's too much of a problem.
>
And can be solved as so:
SELECT da.docid, rtrim(textcat_all( a.Author_name || ',' ), ',') ...
Excellent tip, Herouth. This one goes in the 'keepers' bag.
Ross
--
Ross J. Reedstrom, Ph.D., <reedstrm(at)rice(dot)edu>
NSBRI Research Scientist/Programmer
Computer and Information Technology Institute
Rice University, 6100 S. Main St., Houston, TX 77005
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 1999-08-15 15:48:41 | Re: [SQL] Agregate Problem? |
Previous Message | Herouth Maoz | 1999-08-15 14:27:57 | Re: [SQL] Agregate Problem? |