Re: [SQL] Question about SELECT and ORDER BY

From: Mark Volpe <volpe(dot)mark(at)epamail(dot)epa(dot)gov>
To:
Cc: pgsql-sql(at)postgreSQL(dot)org
Subject: Re: [SQL] Question about SELECT and ORDER BY
Date: 2000-02-03 15:21:44
Message-ID: 38999D08.4D92B943@epamail.epa.gov
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

I think "ORDER BY" must refer to an existing column.
To get the desired result, try adding a third column containing
the result of the calculation you want to sort by:

SELECT table1.attr1, attr2, length(table.attr1) FROM table1 UNION ALL
SELECT table2.attr1, attr3, length(table2.attr1) FROM table2 ORDER BY
length;

but you have to put up w/ the extra column.

Then again, I also find this to work:

SELECT table1.attr1 AS alias, attr2 INTO table3 FROM table1 UNION ALL
SELECT table2.attr1, attr3 FROM table2;

SELECT * from table3 ORDER BY length(alias);

so go figure :-)

Mark

Vladimir Terziev wrote:
>
> Hi,
>
> I have two tables:
>
> table1 (attr1 text, attr2 int4)
>
> table2 (attr1 text, attr3 int4, attr4 bool)
>
> I have a query:
>
> SELECT table1.attr1 AS ALIAS, attr2 from table1 UNION ALL
> SELECT table2.attr1, attr3 from table2 ORDER BY ALIAS;
>
> I that syntax all is OK.
> I want to have a result from ORDER BY length(ALIAS), but this is imposible.
>
> When ORDER BY clause is in format ORDER BY length(attr1), the result is not
> ORDERED BY length of attr1.
>
> What can I do? Are anybody have an idea?
>
> Vladimir
>
> ************

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Don Baccus 2000-02-03 15:39:28 Re: [HACKERS] Re: [SQL] Proposed Changes to PostgreSQL
Previous Message Zeugswetter Andreas SB 2000-02-03 15:21:03 AW: [HACKERS] Re: [SQL] Proposed Changes to PostgreSQL