Re: Cómo numerar secuencialmente las filas resultado de una consulta en SQL

Lists: pgsql-es-ayuda
From: "Guillermo O(dot) Burastero" <linux(dot)gb(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Cómo numerar secuencialmente las filas resultado de una consulta en SQL
Date: 2006-08-08 19:27:14
Message-ID: [email protected]
Views: Whole Thread | Raw Message | Download mbox | Resend email
Lists: pgsql-es-ayuda

Alguien sabe cómo escribir (en lo posible sin apelar a un
procedimiento almacenado) una consulta sql para que agregue como
primera columna un campo con el nº de orden de cada registro que sale
como resultado de la misma ?

Ej. si tengo la tabla personas asi:
select nombre from personas ;
nombre
----------
Juan
Pablo
Angel
Mario

y la quiero ordenada por nombre hago
select nombre from personas order by nombre me da

nombre
----------
Angel
Juan
Mario
Pablo

Ahora bien, quiero agregar un campo virtual en la consulta llamado
NroDeOrden de modo que quede la salida:
NroDeOrden | nombre
-------------------------------
1 | Angel
2 | Juan
3 | Mario
4 | Pablo

--
Guillermo O. Burastero
Usuario GNU/Linux #84879 - http://counter.li.org/
Bahía Blanca, Buenos Aires, Argentina
Tel. +54(291)454-6132


From: "Miguel Huerta" <hgmiguel(at)gmail(dot)com>
To: "Guillermo O(dot) Burastero" <linux(dot)gb(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Cómo numerar secuencialmente las filas resultado de una consulta en SQL
Date: 2006-08-08 19:38:14
Message-ID: [email protected]
Views: Whole Thread | Raw Message | Download mbox | Resend email
Lists: pgsql-es-ayuda

On 8/8/06, Guillermo O. Burastero <linux(dot)gb(at)gmail(dot)com> wrote:
> Alguien sabe cómo escribir (en lo posible sin apelar a un
> procedimiento almacenado) una consulta sql para que agregue como
> primera columna un campo con el nº de orden de cada registro que sale
> como resultado de la misma ?
>
> Ej. si tengo la tabla personas asi:
> select nombre from personas ;
> nombre
> ----------
> Juan
> Pablo
> Angel
> Mario
>
> y la quiero ordenada por nombre hago
> select nombre from personas order by nombre me da
>
> nombre
> ----------
> Angel
> Juan
> Mario
> Pablo
>
> Ahora bien, quiero agregar un campo virtual en la consulta llamado
> NroDeOrden de modo que quede la salida:
> NroDeOrden | nombre
> -------------------------------
> 1 | Angel
> 2 | Juan
> 3 | Mario
> 4 | Pablo
>
create sequence next_id;
Select nextval('next_id') as NroDeOrden , nombre
from personas order by nombre

No se si funcione, no puedo probarlo. Ahi nos dices si sirvio.
> --
> Guillermo O. Burastero
> Usuario GNU/Linux #84879 - http://counter.li.org/
> Bahía Blanca, Buenos Aires, Argentina
> Tel. +54(291)454-6132
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 5: ¿Has leído nuestro extenso FAQ?
>
> http://www.postgresql.org/files/documentation/faqs/FAQ.html
>

--
http://hgMiguel.blogspot.com/
hgMiguel(at)gmail(dot)com


From: "Linder Poclaba" <linder(dot)poclaba(at)gmail(dot)com>
To: "Miguel Huerta" <hgmiguel(at)gmail(dot)com>
Cc: "Guillermo O(dot) Burastero" <linux(dot)gb(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Cómo numerar secuencialmente las filas resultado de una consulta en SQL
Date: 2006-08-08 20:07:53
Message-ID: [email protected]
Views: Whole Thread | Raw Message | Download mbox | Resend email
Lists: pgsql-es-ayuda

2006/8/8, Miguel Huerta <hgmiguel(at)gmail(dot)com>:
>
> On 8/8/06, Guillermo O. Burastero <linux(dot)gb(at)gmail(dot)com> wrote:
> > Alguien sabe cómo escribir (en lo posible sin apelar a un
> > procedimiento almacenado) una consulta sql para que agregue como
> > primera columna un campo con el nº de orden de cada registro que sale
> > como resultado de la misma ?
> >
> > Ej. si tengo la tabla personas asi:
> > select nombre from personas ;
> > nombre
> > ----------
> > Juan
> > Pablo
> > Angel
> > Mario
> >
> > y la quiero ordenada por nombre hago
> > select nombre from personas order by nombre me da
> >
> > nombre
> > ----------
> > Angel
> > Juan
> > Mario
> > Pablo
> >
> > Ahora bien, quiero agregar un campo virtual en la consulta llamado
> > NroDeOrden de modo que quede la salida:
> > NroDeOrden | nombre
> > -------------------------------
> > 1 | Angel
> > 2 | Juan
> > 3 | Mario
> > 4 | Pablo
> >
> create sequence next_id;
> Select nextval('next_id') as NroDeOrden , nombre
> from personas order by nombre

corrigiendo o añadiendo a la consulta seria:

SELECT nextval('next_id') as NroDeOrden, p.nombre FROM (SELECT nombre FROM
personas ORDER BY nombre) as p;

No se si funcione, no puedo probarlo. Ahi nos dices si sirvio.
> > --
> > Guillermo O. Burastero
> > Usuario GNU/Linux #84879 - http://counter.li.org/
> > Bahía Blanca, Buenos Aires, Argentina
> > Tel. +54(291)454-6132
> >
> > ---------------------------(fin del mensaje)---------------------------
> > TIP 5: ¿Has leído nuestro extenso FAQ?
> >
> > http://www.postgresql.org/files/documentation/faqs/FAQ.html
> >
>
>
> --
> http://hgMiguel.blogspot.com/
> hgMiguel(at)gmail(dot)com
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 10: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
>

--
Linder Poclaba Lázaro.
Desarrollador Key Optimal Solutions KEYOS.
Usa Software Libre y obtiene tú libertad.


From: "Linder Poclaba" <linder(dot)poclaba(at)gmail(dot)com>
To: "Miguel Huerta" <hgmiguel(at)gmail(dot)com>
Cc: "Guillermo O(dot) Burastero" <linux(dot)gb(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Cómo numerar secuencialmente las filas resultado de una consulta en SQL
Date: 2006-08-10 20:56:43
Message-ID: [email protected]
Views: Whole Thread | Raw Message | Download mbox | Resend email
Lists: pgsql-es-ayuda

> corrigiendo o añadiendo a la consulta seria:
>
> SELECT nextval('next_id') as NroDeOrden, p.nombre FROM (SELECT nombre FROM
> personas ORDER BY nombre) as p;
>

>Gracias, funcionó ok. Lo único es que hay que inicializar la secuencia
>cada vez que se corre con un
>drop sequence next_id; create sequence next_id;

no necesitas eliminar la secuencia y volver a crearla, puedes reasignar el
empiezo de la secuencia

SELECT setval('nombre_secuencia',0);

o el número donde quieras que empiece.


From: "Linder Poclaba" <linder(dot)poclaba(at)gmail(dot)com>
To: "Miguel Huerta" <hgmiguel(at)gmail(dot)com>
Cc: "Guillermo O(dot) Burastero" <linux(dot)gb(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Cómo numerar secuencialmente las filas resultado de una consulta en SQL
Date: 2006-08-10 20:59:47
Message-ID: [email protected]
Views: Whole Thread | Raw Message | Download mbox | Resend email
Lists: pgsql-es-ayuda

2006/8/10, Linder Poclaba <linder(dot)poclaba(at)gmail(dot)com>:
>
>
>
> > corrigiendo o añadiendo a la consulta seria:
> >
> > SELECT nextval('next_id') as NroDeOrden, p.nombre FROM (SELECT nombre
> FROM
> > personas ORDER BY nombre) as p;
> >
>
> >Gracias, funcionó ok. Lo único es que hay que inicializar la secuencia
> >cada vez que se corre con un
> >drop sequence next_id; create sequence next_id;
>
> no necesitas eliminar la secuencia y volver a crearla, puedes reasignar el
> empiezo de la secuencia
>
> SELECT setval('nombre_secuencia',0);
>

perdon en 1 :)

o el número donde quieras que empiece.
>
>

--
Linder Poclaba Lázaro.
Desarrollador Key Optimal Solutions KEYOS.
Usa Software Libre y obtiene tú libertad.