Columna AutoIncremento en un SELECT

25/08/2008 - 23:28 por Jorge | Informe spam
Es posible generar una secuencia 1,2,3,4 como columna usando una
sentencia SELECT?
por ejemplo si tengo una lista de articulos

SELECT CODE FROM ARTICULOS
A
AA
AAB
B
BA
C
D
DD
DD
E
EA
EAB

quisiera poder obtener algo asi
1 A
2 AA
3 AAB
1 B
2 BA
1 C
1 D
2 DD
3 DD
1 E
2 EA
3 EAB
Quizas no tiene mucho sentido pero la situacion es que el usuario debe ser
capaz de determinar cuantos registros existen por articulo "A SIMPLE VISTA"
sin necesida de contar cada registro

o en todo caso algo asi
1 A
2 AA
3 AAB
4 B
5 BA
6 C
7 D
8 DD
9 DD
10 E
11 EA
12 EAB

gracias por su tiempo.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
26/08/2008 - 00:26 | Informe spam
Jorge,

Hechale un vistazo a las funciones row_number, rank, y dense_rank en los BOL.

select row_number() over(order by code) as rn, code
from articulos
order by code
go


AMB


"Jorge" wrote:

Mostrar la cita
#2 Lucas Perez
26/08/2008 - 00:27 | Informe spam
Jorge

esta linea de codigo te puede servir

para la primera inquietud

select ROW_NUMBER() OVER( PARTITION BY substring(strNombreEmpleado,1,1)
ORDER BY substring(strNombreEmpleado,1,1) ASC)
as nroregistro,
strNombreEmpleado
from dbo.tblEmpleados


para la segunda

select ROW_NUMBER() OVER( ORDER BY strNombreEmpleado ASC)
as nroregistro,
strNombreEmpleado
from dbo.tblEmpleados


"Jorge" wrote:

Mostrar la cita
#3 Jorge
26/08/2008 - 15:37 | Informe spam
Gracias pero saben si es posible en el SQL 2000? trate de buscar la funcion
y solo la vi en el SQL2005"Alejandro Mesa"
wrote in message
news:
Mostrar la cita
#4 Alejandro Mesa
26/08/2008 - 19:20 | Informe spam
Jorge,

De poderse hacer, se puede, pero el desempenio de este tipo de queries en SS
2000 no es muy buena que digamos, sobre todo cuando el resultado incluye
muchas filas.

How to dynamically number rows in a SELECT Transact-SQL statement
http://support.microsoft.com/defaul...-us;186133

Ejemplo:

Suponiendo que los codigos son unicos, puedes usar esta select. Si no son
unicos, tendras que usar algun conjunto de columnas para romper el empate.

SELECT
CODE,
(
SELECT COUNT(*)
FROM ARTICULOS AS b
WHERE b.CODE <= a.CODE
) AS rn
FROM
ARTICULOS AS a
ORDER BY
CODE
GO


AMB


"Jorge" wrote:

Mostrar la cita
Ads by Google
Search Busqueda sugerida