Re: xml output - Mailing list pgsql-novice

From Thom Brown
Subject Re: xml output
Date
Msg-id AANLkTimfD3ja3RbgzWeSHLmv7x_jJin-+iaUei+ivnJf@mail.gmail.com
Whole thread Raw
In response to Re: xml output  (Florian Henge <florian.henge82@web.de>)
List pgsql-novice
On 25 August 2010 09:53, Florian Henge <florian.henge82@web.de> wrote:
> Hi!
>
> Thanks, that worked perfectly for me, except for one problem.
>
> I have like 20 times the name "Joe" in my table, but want to get it only once in the xml output file.
>
> How can is do this? I tried SELECT DISTINCT but it didn't work.

If you're using PostgreSQL 8.4 or greater you can do:

WITH people AS (
    SELECT DISTINCT first_name
    FROM person
    ORDER BY first_name
)
SELECT
xmlelement(name words,
    xmlagg(
        xmlforest(first_name)
    )
)
FROM people

If not, you can do:

SELECT
xmlelement(name words,
    xmlagg(
        xmlforest(first_name)
    )
)
FROM (
    SELECT DISTINCT first_name
    FROM person
    ORDER BY first_name
) AS people

Although maybe there's a nicer way of doing it.  Note that if you want
aggregates in your results, use GROUP BY instead of DISTINCT.
--
Thom Brown
Registered Linux user: #516935

pgsql-novice by date:

Previous
From: Florian Henge
Date:
Subject: Re: xml output
Next
From: Siddharth Saha
Date:
Subject: calling functions which take user defined types