Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Select con registros intermedios

Estas en el tema de Select con registros intermedios en el foro de SQL Server en Foros del Web. Hola a todos, tengo la siguiente duda. Escenario: 1 Base con el nombre: anotaciones Tabla: ingreso Estructura: id - cod_anotacion - desc_anota - fecha - ...
  #1 (permalink)  
Antiguo 19/08/2011, 11:14
 
Fecha de Ingreso: octubre-2010
Ubicación: Palermo
Mensajes: 55
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta Select con registros intermedios

Hola a todos, tengo la siguiente duda.

Escenario:
1 Base con el nombre: anotaciones
Tabla: ingreso
Estructura:
id - cod_anotacion - desc_anota - fecha - ip - user

Esta tabla puede tener de 200 a 400 registros, pasado un tiempo se depura por fecha.

La consulta concreta:
Si realizo un:

select top 20 desc_anota, fecha from ingreso (esto me da como resultado las primeras 20 anotaciones)

Ahora como puedo hacer un select con las siguientes 20 anotaciones, obviamente sin traer las primeras 20.

Puedo mover un "indice" y decirle que traiga desde ese punto en adelante o algo parecido....

Desde ya muchas gracias.
Gustavo
  #2 (permalink)  
Antiguo 19/08/2011, 11:25
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Select con registros intermedios

Metele un row_number() y asi obtienes el numero de renglones y nada mas te traes los primeros 20 seria algo asi


declare @ren_actual
set @ren_actual=10
select row_number() over(order by campo) as rn, campos from tabla
where rn between @ren_actual and @ren_actual + 20


Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: indice, select, top
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:11.