Re: [SQL] Question about SELECT and ORDER BY - Mailing list pgsql-sql

From Mark Volpe
Subject Re: [SQL] Question about SELECT and ORDER BY
Date
Msg-id 38999D08.4D92B943@epamail.epa.gov
Whole thread Raw
In response to Question about SELECT and ORDER BY  ("Vladimir Terziev" <vlady@school.digsys.bg>)
List 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
> 
> ************


pgsql-sql by date:

Previous
From: "Vladimir Terziev"
Date:
Subject: Question about SELECT and ORDER BY
Next
From: Zeugswetter Andreas SB
Date:
Subject: AW: [HACKERS] Re: [SQL] Proposed Changes to PostgreSQL