Compatible UNION query for postgresql and MS SQL Server

From: "Randy Zierman" <randy(dot)zierman(at)HelmSolutionsGroup(dot)com>
To: <pgsql-general(at)postgresql(dot)org>
Subject: Compatible UNION query for postgresql and MS SQL Server
Date: 2003-02-17 19:55:37
Message-ID: 4952D11C5863E6458C982AAE31774F722DAA@hsg-corp-apex.HelmSolutionsGroup.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I am adapting a java application to work with both SQL Server and
postgresql 7.2.2. I am having trouble with the following statement.

String strSQL = "Select m.* from Message m, ASKUser u " +
"where (m.JurisdictionID = " + currentJurisdictionID + " AND
DistributionType = 'J') " +
"OR DistributionType = 'M' OR DistributionType = 'S' " +
"AND (Status = 'O' " +
"and u.ASKUserID = " + currentASKUserID + ") " +
"Union " +
"Select m.* from UserSchool us " +
"inner join ASKUser u on u.ASKUserID = us.ASKUserID " +
"inner join MessageSchool ms on ms.SchoolID = us.SchoolID " +
"inner join Message m on m.MessageID = ms.MessageID " +
"where us.ASKUserID = " + currentASKUserID +
"ORDER BY m.Priority, m.DistributionType, m.CreationDate ";

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.
With postgres, using the table alias produces the error "Relation "m"
does not exist"

Is there any way, besides using column numbers, to use the same syntax
for both databases?

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Patrick Nelson 2003-02-17 20:03:11 RE in where
Previous Message Sean Chittenden 2003-02-17 19:53:54 TIMESTAMP WITH( OUT)? TIME ZONE indexing/type choice...