From: | Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com> |
---|---|
To: | "A(dot)M(dot)" <agentm(at)cmu(dot)edu> |
Cc: | <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: UNION and ORDER BY ... IS NULL ASC |
Date: | 2003-04-05 02:49:31 |
Message-ID: | 20030404184636.W530-100000@megazone23.bigpanda.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On Fri, 4 Apr 2003, A.M. wrote:
> PostgreSQL 7.3.2 on i686-pc-linux-gnu, compiled by GCC 2.95.3
>
> I have come across some unexpected behavior while dealing with a UNION
> and ORDER BY. I'd like some advice. Here's a scenario where I want to
> order by null values:
>
> CREATE TABLE test(a int);
> SELECT a FROM test UNION SELECT a FROM test ORDER BY a IS NULL ASC;
>
> returns:
>
> ERROR: ORDER BY on a UNION/INTERSECT/EXCEPT result must be on one of
> the result columns
>
> whereas:
>
> SELECT a FROM test UNION SELECT a FROM test ORDER BY a;
>
> works fine. The column name is the same in both queries, yet I get an
> error! Obviously, this is a gross oversimplification of what I want to
> do, but I couldn't get it working in this minimal case. I also tried
> using the column number, and that returns the same results as the name.
> What am I doing wrong? Thanks for any info.
Try something like:
select a from (select a from test union select a from test) as foo order
by a is null asc;
It's an unsupported extension (I don't think SQL would allow
"order by a is null" in the first place) so you'll have to workaround for
now.
From | Date | Subject | |
---|---|---|---|
Next Message | Josh Berkus | 2003-04-05 02:52:30 | Re: UNION and ORDER BY ... IS NULL ASC |
Previous Message | Manfred Koizar | 2003-04-05 02:08:22 | Re: [SQL] can i make this sql query more efficiant? |