jueves, 7 de julio de 2011

Paginación de filas desde SQL

En alguna ocasión hemos visto que en una aplicación mostramos una tabla con los resultados de una consulta SQL, pero cuando la cantidad de filas es muy grande, la tabla también crece hacia abajo, que bonito sería poder mostrar solo una cantidad explícita de filas a la vez y que con solo oprimir siguiente nos muestre la siguiente secuencia de filas sin repetir, bueno, esta podría ser una solución:


// La página que deseamos mostrar.
DECLARE @Pagina INT = 2
// Número de filas por página.
DECLARE @Cant_deFilas INT = 10
SELECT * FROM (
    SELECT RowNum = ROW_NUMBER() OVER (
        ORDER BY Campo_deOrdenamiento
    ), * FROM tbMiTabla ) AS t
WHERE
    RowNum > (@Cant_deFilas * (@Pagina - 1)) AND
    RowNum <= (@Cant_deFilas * (@Pagina - 1)) + @Cant_deFilas
ORDER BY Campo_deOrdenamiento


Donde el Campo_deOrdenamiento es un campo de la tabla que nos funcione de orden para el contenido de ésta, puede ser un campo de fecha o algún ID.
En éste ejemplo nos muestra el segundo grupo de 10 filas.
Referencia completa: MSSQL Tips

No hay comentarios:

Publicar un comentario