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

Limitar o Paginar una consulta en SQL

Estas en el tema de Limitar o Paginar una consulta en SQL en el foro de SQL Server en Foros del Web. Hola a todos. Antes de hacer este tema estuve revisando en el foro y no encontre nada parecido a lo que neceisto. Estoy programando un ...
  #1 (permalink)  
Antiguo 09/07/2012, 08:21
 
Fecha de Ingreso: mayo-2012
Ubicación: shilito
Mensajes: 67
Antigüedad: 12 años
Puntos: 3
Limitar o Paginar una consulta en SQL

Hola a todos.

Antes de hacer este tema estuve revisando en el foro y no encontre nada parecido a lo que neceisto.

Estoy programando un invenatrio en PHP, pero al momento de buscar algo en la BBDD de SQL (cierta caracteristica de algunos equipos) tengo como resultado alrededor de 2000 coincidencias. Yo no quiero mostrar los 2000 resultados en la pagina, si no que Paginar este resultado, pero ya desde la misma consulta en la BBDD de SQL.


Estuve viendo que en Mysql esta la funcion Limit, hay algo parecido a esta funcion en SQL, o si alguien tuvo antes que mi este problema como lo hizo para poder solucionarlo. Se me ocurren varias ideas como de dejar el resultado en una variable, pero no es lo mas Eficiente, ya que si se realiza un cambio en la BBDD no se mostraria, ademas que puede causar un desbordamiento de memoria, y eso es lo menos que quiero en mi programa.

de ante manos muchas gracias.
  #2 (permalink)  
Antiguo 09/07/2012, 10:19
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: Limitar o Paginar una consulta en SQL

puedes hacerlo con un top, que es para que te traiga por ejemplo los primeros 50 o si no usando una funcion row_number donde te regrese el numero de renglones y nada mas le digas que te regrese del renglon n al n donde n seria donde empezaria tu conteo.... soluciones hay varias ahora depende de como quieras implementar tu codigo :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 09/07/2012, 13:38
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Limitar o Paginar una consulta en SQL

¿Que VERSION-EDICION manejas de SQL Server?
__________________
MCTS Isaias Islas
  #4 (permalink)  
Antiguo 10/07/2012, 07:55
 
Fecha de Ingreso: mayo-2012
Ubicación: shilito
Mensajes: 67
Antigüedad: 12 años
Puntos: 3
Respuesta: Limitar o Paginar una consulta en SQL

estoy usando SQL 2008.
  #5 (permalink)  
Antiguo 10/07/2012, 07:55
 
Fecha de Ingreso: mayo-2012
Ubicación: shilito
Mensajes: 67
Antigüedad: 12 años
Puntos: 3
Respuesta: Limitar o Paginar una consulta en SQL

Cita:
Iniciado por Libras Ver Mensaje
puedes hacerlo con un top, que es para que te traiga por ejemplo los primeros 50 o si no usando una funcion row_number donde te regrese el numero de renglones y nada mas le digas que te regrese del renglon n al n donde n seria donde empezaria tu conteo.... soluciones hay varias ahora depende de como quieras implementar tu codigo :)
que sea lo mas sencillo y eficaz, para asi poder montar bien las variables en php
  #6 (permalink)  
Antiguo 10/07/2012, 09:14
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Limitar o Paginar una consulta en SQL

Aqui te dejo un codigo de PAGINACION para 2005 o superior, analizalo, tal vez te sea de utilidad.

Código SQL:
Ver original
  1. CREATE PROCEDURE UltimosTrucos
  2. @PageSize INT,
  3. @PageNumber INT
  4. AS
  5.  BEGIN
  6.   SET NOCOUNT ON
  7.   SELECT PK_ID, Truco, Descripcion
  8.   FROM (
  9.   SELECT PK_ID, Truco, Descripcion,
  10.   ROW_NUMBER() OVER (ORDER BY Truco, PK_ID) AS
  11.   RowNumber
  12.   FROM
  13.   TrucosInformaticos
  14.   ) AS Trucos
  15.   WHERE RowNumber BETWEEN @PageSize * @PageNumber + 1
  16.   AND @PageSize * (@PageNumber + 1)
  17.  END
__________________
MCTS Isaias Islas

Etiquetas: limitar, paginar, sql
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 11:00.