On Mon, 18 Mar 2002, Hubert Palme wrote:
> >>>>> "S" == Stephan Szabo <sszabo@megazone23.bigpanda.com> writes:
>
> S> On Mon, 11 Mar 2002, Hubert Palme wrote:
> >> Paul wrote:
> >>
> >> > CREATE SEQUENCE seq1;
> >> >
> >> > SELECT nextval('seq1'), amname FROM pg_am;
> >> >
> >> > DROP SEQUENCE seq1;
> >> >
> >>
> >> Hmm... I forgot to mention that my SELECT statement has an ORDER BY clause.
> >> The sort is done after the sequence numbers being generated. So the order
> >> of the sequence numbers becomes damaged by the sort.
> >>
> >> Is there any hint how to avoid this?
>
> S> select nextval('seq1'), foo.* from (select ...) foo;
>
> I tried this:
>
>CREATE SEQUENCE z_nummer;
>SELECT nextval('z_nummer'), hilfstab.name, hilfstab.vorname
>FROM (SELECT *
> FROM leute
> ORDER BY name, vorname) hilfstab;
> DROP SEQUENCE z_nummer;
>
> and got this result:
>
> mitglieder=> \i selorder.sql
> CREATE
> psql:selorder.sql:5: ERROR: parser: parse error at or near "select"
> DROP
> mitglieder=>
>
> Did I understand you right, this kind of subqueries in FROM clauses
> are allowed? (Didn't find it in any manual)
What version are you using?
AFAIK that structure is allowed in 7.1 and after.