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:

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.




Respuesta Responder a este mensaje
#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:

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.




Respuesta Responder a este mensaje
#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:
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:

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.




Respuesta Responder a este mensaje
#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:

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:
> 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:
>
>> 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.
>>
>>
>>
>>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida