Rvsd. / Re: Named column in a Function fails at ORDER BY (PgSQL 7.1)

Поиск
Список
Период
Сортировка
От Bernd von den Brincken
Тема Rvsd. / Re: Named column in a Function fails at ORDER BY (PgSQL 7.1)
Дата
Msg-id 5.1.0.14.2.20020404020655.01cd3ea8@pop.kundenserver.de
обсуждение исходный текст
Ответ на Re: Named column in a Function fails at ORDER BY (PgSQL 7.1)  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Rvsd. / Re: Named column in a Function fails at ORDER BY (PgSQL 7.1)  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-sql
Hello Tom,
thanks for your detailed remarks.

At 03.04.2002 23:46, you wrote:
>...expressions over the input columns.  Essentially it's a way to write
>
>         SELECT content,
>                datetime AS max_date,
>                date_part('hour', datetime) AS order_val
>         FROM cftext
>         ORDER BY order_val
>
>(which would be a spec-legal construct) and then tell the system you
>didn't really want to see the order_val column in your output.

Actually I had not understood the input/output column rules with ORDER BY, 
so my question was not meant as proposal to change the rules - in the first 
place.

But at this occasion, now rethinking the concept of SQL92 vs. SQL99 (as you 
describe them) I see some advantage of "expressions over output columns".
Once again, I just rewrote my query (simplified):

SELECT A, (SELECT x FROM y) AS B        FROM z        ORDER BY function ( A, B )

that did not work, into:

SELECT A, function ( A, (SELECT x FROM y) ) AS B        FROM z        ORDER BY B

That works fine, thanks so far.
But, if I wanted the subselect as an output column (as well as a function 
parameter), I would have to write:

SELECT A, (SELECT x FROM y) AS B, function (A, B) AS C        FROM z        ORDER BY C

This once again does not work, because not only ORDER BY but also a 
function() in the column list seems to fail with the output column name B. 
The only workaround I see is to use the subselect twice - not very elegant. 
(But I'm still willing to learn...)

>SQL99 seems to have (incompatibly) redefined ORDER BY to allow
>expressions over the output column names, but I don't have a lot of
>appetite for breaking existing applications in order to conform to the
>SQL99 definition.

Would it really break existing applications it this syntax would be possible?
Regards
// Bernd vdB



В списке pgsql-sql по дате отправления:

Предыдущее
От: "cristi"
Дата:
Сообщение: Date
Следующее
От: Masaru Sugawara
Дата:
Сообщение: Re: FULL JOIN with 3 or more tables