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)
|
Список | 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 по дате отправления: