Crear una Consulta en SQL Serve por porciones de datos

Hola Experto! Espero que me puedas ayudar con una duda que se me genero. Recién hace muy poco tiempo que comencé mis pasos por el Mundo del Sql, ya que, por mi Trabajo, tuve que ver como funcionaba el sql server 2005.
Estoy Trabajando como administrador de Bases de Datos.
La base cuenta con aproximadamente unos 500.000 registros, aquí viene mi duda.. Necesito realizar una consulta desde el registro 150.000 hasta el registro 500.000 o mejor dicho hasta el ultimo registro de la base.
Estoy desesperado! Espero que me Puedas orientar te lo voy a agradecer mucho.
Espero tu respuesta
Saludos gabo
1

1 respuesta

Respuesta
1
Bueno si tienes algún campo identity(contador o consecutivo ) seria sencillo solo haces tu consulta, y en la clausula where le pones where Contador >1499,(incluso podrías agregar este campo si no cuentas con el.
Pero si no cuentas con esto o no puedes agregar este campo en tu tabla podrías realizar algo así:
Select top(3500) *,row_number() over(order by TuCampoOrdenar) as cont from TuTabla order by TuCampoOrdenar desc
Nota: tuCampoOrdenar es un campo con el que puedas identificar el orden de tus registros en tu tabla, con la palabra desc obtienes los últimos si la pones con asc obtendrás los primeros.
Gracias Experto por tu respuesta!, no tengo un campo identity y tampoco puedo agregarlo ya que, la base no se puede modificar por razones laborales, Pero tu segunda solución me ayudara muchísimo.
Una pregunta más... no es recomendable que la ordene a la base cuando creo la consulta ya que necesito consultar los últimos ingresados en la semana, ¿no?
Bueno aquí es para usar el row_number hay que ordenar pero ya razonando un poco se me ocurrió otra forma:
Select * From TuTabla where CampoId not in (Select top(1500) CampoID From TuTabla)
Donde CampoID tiene que ser un campo que identifice los registros alguna clave o cuenta.
Lo que hace esta consulta seleccionar los primeros 1500 CamposID y luego selecciona todos los campos donde Campo ID no este en la lista anterior que en este cason serian los 3500 últimos campos.
Espero así este mejor estructurada la consulta y te sea más útil.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas