Satheesh Bandaram wrote:
Not sure what you mean by *the case where you are using VALUES to construct a table*, Derby does allow naming those columns.

ij> values (1,1,1), (2,2,2);
1          |2          |3
-----------------------------------
1          |1          |1
2          |2          |2
ij> select * from (values (1,1,1), (2,2,2)) as t(i,j,k) order by i desc;
I          |J          |K
-----------------------------------
2          |2          |2
1          |1          |1

Aren't these symantically the same?


As I read it they are close but a little different.

The first is simply constructing a table and as such the columns would have implementation dependent names; the second is constucting a table the same way (again with implementation dependent names) but as a table subquery with a derived column list that defines the column names for use in the outer select.

The second provides a portable (ok, conforming) way of naming the columns. To do the same thing the first way we would need to support

values (1,1,1), (2,2,2) order by "SQLCol1" desc

in the same way as

ij> select "SQLCol3" from ( values(1,2,3),(4,5,6)) as t order by "SQLCol3" desc;
SQLCol3
-----------
6
3


works now.
--
Jeremy

Reply via email to