![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
The following bug has been logged online: Bug reference: 1335 Logged by: snaky Email address: snaky (AT) ulstu (DOT) ru PostgreSQL version: 8.0 Beta Operating system: Windows 2003/XP Description: Wrong sort result in union queries Details: sorry for my english. Query: select 2 union select 1 Result: 1 2 Why? I think the result must be like this: 2 1 Why PostgreSQL sort union queries by first column by default? Certainly, I understand that I can write general "order by" in the end of query. However, in this case, I can't make queries with "manual" row ording. And what is more, this query does not work properly: (select * from (select 1, 2 union select 4, 3) as a order by 2 desc) union select 1, 1 Result must be like this: 4, 3 1, 2 1, 1 but real result is: 1, 1 1, 2 4, 3 Full version info: PostgreSQL 8.0.0beta1 on i686-pc-mingw32, compiled by GCC gcc.exe (GCC) 3.2.3 (mingw special 20030504-1) |
#3
| |||
| |||
|
|
Query: select 2 union select 1 Result: 1 2 Why? I think the result must be like this: 2 1 |
|
Why PostgreSQL sort union queries by first column by default? Certainly, I understand that I can write general "order by" in the end of query. However, in this case, I can't make queries with "manual" row ording. |
|
(select * from (select 1, 2 union select 4, 3) as a order by 2 desc) union select 1, 1 Result must be like this: 4, 3 1, 2 1, 1 but real result is: 1, 1 1, 2 4, 3 |
#4
| |||
| |||
|
|
Union isn't a tool which gives you that ability. Union All is closer, but still doesn't guarantee an order. |
|
This one is also okay. The order by in one wing does not control the output of the union. I believe supporting it is an extension in any case (at least SQL92 seems to make it illegal) |
![]() |
| Thread Tools | |
| Display Modes | |
| |