From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Randy Zierman" <randy(dot)zierman(at)HelmSolutionsGroup(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Compatible UNION query for postgresql and MS SQL Server |
Date: | 2003-02-17 22:23:32 |
Message-ID: | 15792.1045520612@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
"Randy Zierman" <randy(dot)zierman(at)HelmSolutionsGroup(dot)com> writes:
> String strSQL =3D "Select m.* from Message m, ASKUser u " +
> "where (m.JurisdictionID =3D " + currentJurisdictionID + " AND
> DistributionType =3D 'J') " +
> "OR DistributionType =3D 'M' OR DistributionType =3D 'S' " +
> "AND (Status =3D 'O' " +
> "and u.ASKUserID =3D " + currentASKUserID + ") " +
> "Union " +
> "Select m.* from UserSchool us " +
> "inner join ASKUser u on u.ASKUserID =3D us.ASKUserID " +
> "inner join MessageSchool ms on ms.SchoolID =3D us.SchoolID " +
> "inner join Message m on m.MessageID =3D ms.MessageID " +
> "where us.ASKUserID =3D " + currentASKUserID +
> "ORDER BY m.Priority, m.DistributionType, m.CreationDate ";
> =20
> The problem is in the ORDER BY clause. If the table alias (m.) is not
> given, SQL server complains that there is an ambiguous column reference.
Go Microsoft :-( ... guess they can't read the SQL spec. The ORDER BY
really ought to see only the column names output by the UNION --- which
do not have any attached table alias.
It's barely possible that SQL Server is mis-parsing the construct and
thinks that the ORDER BY applies to the second SELECT, not the UNION
output as it should per-spec. You could try putting in parentheses
to see if that helps:
(SELECT ...
UNION
SELECT ...)
ORDER BY Priority, etc
If that doesn't work, the only other thing I can think of is a
sub-select:
SELECT * FROM
(SELECT ...
UNION
SELECT ...) ss
ORDER BY Priority, etc
I would not be surprised to hear that SQL Server can't handle either
of these (perfectly spec-compliant) syntaxes, in which case you're
probably stuck ...
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2003-02-17 22:27:47 | Re: RE in where |
Previous Message | Christopher Murtagh | 2003-02-17 22:11:49 | pg_dump --> restore loses constraints/triggers? |