Re: un contador en una query

From: Mximo Eduardo Mndez <mmendez(at)ceride(dot)gov(dot)ar>
To: "Mximo Eduardo Mndez" <mmendez(at)ceride(dot)gov(dot)ar>, msotocl(at)gmail(dot)com, alvherre(at)surnet(dot)cl
Cc: systemguards(at)gmail(dot)com, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: un contador en una query
Date: 2005-05-31 16:12:16
Message-ID: BasiliX-1.1.1_fix2-1117566736429cb7102f2dd@wwwmail.ceride.gov.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Otra cuestin. El problema que tiene esta solucin, es que si en la select pons un order by, la numeracin que forzs con nextval no te quedar en el orden del criterio de ordenamiento, ya que primero calcular el conjunto resultado y posteriormente lo ordena. Si lo que quers es ponerle adems un criterio de ordenamiento, se me ocurre que deberas recurrir a una funcin. Yo prob crear una tabla temporal con la estructura que pretendo en la salida ms la columna del orden y mediante un cursor con la select ordenada (sobre la consulta de inters), inserto en la tabla temporal los campos que me interesan ms uno calculado (el nmero de orden) que incremento en cada bucle de recorrido del cursor. No s si te sirva, pero te lo comento.

Mximo E. Mndez
CERIDE

31 May 2005 15:57 ART usted escribio:

> Lo que podras hacer es tener definida una secuencia y al momento de utilizarla en la salida que deseas, consultas el valor actual (currval()) y lo guardas en una variable xx. De esta manera podras hacer entonces:
> select nextval('nombre_sqcuencia') - xx, campo1, campo2, campon from Tabla
> y la salida siempre empezar desde 1
>
> Espero te sirva.
>
> Mximo E. Mndez
> CERIDE
>
> 31 May 2005 14:39 ART usted escribio:
>
> > El 31/05/05, Alvaro Herrera<alvherre(at)surnet(dot)cl> escribi:
> > > On Tue, May 31, 2005 at 09:51:12AM -0500, Jaime Casanova wrote:
> > > > On 5/31/05, Mario Soto Cordones - Venezuela <msotocl(at)gmail(dot)com> wrote:
> > > > > El 31/05/05, Alvaro Herrera<alvherre(at)surnet(dot)cl> escribi:
> > > > > > On Tue, May 31, 2005 at 08:08:17AM -0400, Mario Soto Cordones - Venezuela wrote:
> > > > > >
> > > > > > > Mi pregunta es :
> > > > > > >
> > > > > > > puedo en la consulta incorporar un contador para que la consulta me retorne asi
> > > > > > >
> > > > > > > campo1 campo2 campo3 ??
> > > > > > > mario soto caracas 1
> > > > > > > juan quintero caracas 2
> > > > > >
> > > > > > Has considerado usar una secuencia? Es muy sencillo, solo pones un
> > > > > > nextval() como parte de la lista de resultados de la consulta.
> > > > > >
> > > > > Sip, y aunque es muy sencillo y facil, no es lo que quiero hacer ya
> > > > > que el orden de aparicion es dinamico, lo doy en el query, por lo que
> > > > > el el registro 2 no necesariamente seria consecutivo al registro 1 ,
> > > > > (digo fisicamente en la tabla), es por eso mi pregunta
> > > >
> > > > Bajo esas condiciones solo se me ocurre usar una funcion.
> > >
> > > Evidentemente Mario solo leyo hasta el primer signo de interrogacion de
> > > la respuesta que le di.
> >
> > lHola lo lei completamente, lo que pasa es que para ello cada vez que
> > gatillo el query deberia crear una secuencia, o tener la secuencia y
> > al finalizar el query volver a setearla en 0.... o me equivoco ?????
> >
> > Saludos
> >
> > >
> > > --
> > > Alvaro Herrera (<alvherre[a]surnet.cl>)
> > > "La principal caracterstica humana es la tontera"
> > > (Augusto Monterroso)
> > >
> >
> >
> > --
> > cordialmente,
> >
> > Ing. Mario Soto Cordones
> >
> > ---------------------------(fin del mensaje)---------------------------
> > TIP 8: explain analyze es tu amigo
>
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 3: si publicas/lees desde Usenet, por favor enva "subscribe-nomail"
> a majordomo(at)postgresql(dot)org para que tus mensajes puedan llegar
> a los suscriptores de la lista

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Roberto Cesar Najera 2005-05-31 16:19:21 replica un OID
Previous Message Jaime Casanova 2005-05-31 15:50:04 Re: pregunta