On Thu, Dec 02, 2004 at 10:13:26AM -0500, [EMAIL PROTECTED] wrote:
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] Behalf Of Chris Green
> > Sent: Thursday, December 02, 2004 9:56 AM
> > To: [EMAIL PROTECTED]
> > Subject: [GENERAL] UNION with ORDER BY -allowed?
> >
> >
> > It's not quite clear (to me at least) whether I can have a UNION and
> > an ORDER BY in a SELECT statement.
> >
> > What I want to do is:-
> >
> > SELECT
> > col1, col2, col5, col6
> > FROM
> > table
> > WHERE
> > col2 = 'X'
> > UNION
> > SELECT
> > col3, col4, col5, col6
> > FROM
> > table
> > WHERE
> > col4 = 'X'
> > ORDER BY
> > coalesce(col1, col3)
> >
> > Is this valid syntax allowed by postgresql? (I'm not at the system
> > where postgresql is installed at the moment so I can't just try it)
> Yes, provided the columns are the same data types (or you can cast them to
> make them the same)
>
Yes, they are all matching types, what I said just below indicates
this (note that the other columns are the *same* columns).
> >
> > col1 and col3 are both DATE columns. col2 and col4 are both
> > varchar(1).
> >
> > I want the ORDER BY to order the result of the UNION.
>
> It does, per SQL spec. Nothing less would make sense if you ask me. :)
>
That's what I thought it was saying, thanks for confirming it.
--
Chris Green ([EMAIL PROTECTED])
"Never ascribe to malice, that which can be explained by incompetence."
---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster