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

Reply via email to