Hola Jorge,
On 7 nov, 15:18, "Jorge Carazzo" <jorgecara...@yahoo.com.ar> wrote:
> Chicos, tengo una consulta que me devuelve una cierta cantidad de registros,
> pero necesito que el primer campo de la misma posea un numero secuencial que
> vaya desde 1 hasta el total de registros devueltos.
> Hay alguna variable o instrucción que me permita eso ?
> ejemplo:
> campo1 campo2 campo3 campo4 ...
> 1 xxxxx xxxx xxxxx
> 2 xxxxx xxxx xxxxx
> 3 xxxxxx xxx xxxx
> El campo1 no es un valor contenido en una tabla de la base de datos
No dices para que versión de SQL Server.
Aquí te dejo unos ejemplos y no te olvides de consultar
los BOL.
declare @T table(Campo2 varchar(10), Campo3 varchar(10))
insert into @T (Campo2, Campo3)
select 'xxx' Campo2, 'x' Campo3
union select 'xxx', 'y'
union select 'zzz', 'z'
-- Con 2005, 2008:
select
row_number() over (order by Campo2) Campo1,
Campo2,
Campo3
from @T
-- Con 2000:
-- (Asumiendo que {Campo2, Campo3} es una clave)
select count(*) as Campo1, t1.Campo2, t1.Campo3
from @T t1 join @T t2
on t1.campo2>t2.campo2 or
(t1.campo2=t2.campo2 and t1.campo3>=t2.campo3)
group by t1.Campo2,t1.Campo3
Saludos,
Carlos