2008/12/23 Jaime Casanova <jcasa...@systemguards.com.ec> > On Tue, Dec 23, 2008 at 8:29 PM, Julio Cesar Rodriguez Dominguez > > > > > postg...@contable[localhost]=# begin; create sequence s; select * from > > (select nextval('s') as offset,idgrupo,grupo from (select idgrupo,grupo > from > > cc_grupos order by grupo) x ) xx where idgrupo=5;rollback; > > > > postgres esta empujando los select internos hacia afuera, convirtiendo > esto: > > select * from (select nextval('s') as offset,idgrupo,grupo > from (select idgrupo,grupo > from cc_grupos order by grupo) x ) xx > where idgrupo=5 > > > en esto: > > select nextval('s') as offset,idgrupo,grupo > from (select idgrupo,grupo from cc_grupos order by grupo) x > where idgrupo=5 > > > si en cambio los escribes asi, hace lo que quieres: > > select * from (select nextval('s') as offset,idgrupo,grupo > from (select idgrupo,grupo from cc_grupos > order by grupo) x > offset 0 ) xx > where idgrupo=5; > Gracias Jaime, esto funciona muy bien.
> > o mejor aun: > > select * from (select nextval('s') as offset, idgrupo, grupo > from cc_grupos offset 0) as foo > where idgrupo = 5 > Esto no, ya que necesito que primero esten ordenados los registros y luego aplicar el consecutivo, y con esto, aplica el serial y luego los ordena, quedando el serial de manera de manera desordenada, (inserte un registro mas , ya que con los datos anteriores, si salia el mismo resultado) idgrupo | grupo ---------+--------------- 7 | AAA 1 | ABCD 5 | BACILADORAS 3 | DENOMINACION 4 | LAS PAGADORAS (5 filas) ordenados; offset | idgrupo | grupo --------+---------+--------------- 1 | 7 | AAA 2 | 1 | ABCD 3 | 5 | BACILADORAS 4 | 3 | DENOMINACION 5 | 4 | LAS PAGADORAS (5 filas) resultado queda con offset igual a 2, cuando deberia de ser 3: postg...@contable[localhost]=# begin;create sequence s;select * from (select nextval('s') as offset,idgrupo ,grupo from cc_grupos offset 0) as foo where idgrupo = 5;rollback; BEGIN CREATE SEQUENCE offset | idgrupo | grupo --------+---------+------------- 2 | 5 | BACILADORAS (1 fila) ROLLBACK Bueno, pero solo me queda la duda, ¿Se considera normal que Postgresql empuje los select's internos hacia afuera? > -- > Atentamente, > Jaime Casanova > Soporte y capacitación de PostgreSQL > Asesoría y desarrollo de sistemas > Guayaquil - Ecuador > Cel. +59387171157 > -- :: God bless you, every day and every night ::