sábado, 20 de junio de 2015

Pagination in SQL Server

-- Example using AdventureWorks Database

-- Paginación.

 /*
     Actualmente se maneja desde la aplicación; pero lo mejor es desde el servidor.
 */

 SELECT
     ProductID,
     Name
 FROM Production.Product
 ORDER BY Name
 OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY;

 SELECT
     ProductID,
     Name
 FROM Production.Product
 ORDER BY Name
 OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY;

 SELECT
     ProductID,
     Name
 FROM Production.Product
 ORDER BY Name
 OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;

 DECLARE @pagina INT

 SET @pagina = (SELECT COUNT(*) / 10 FROM Production.Product AS p)

 SELECT
     p.ProductID,
     p.Name
 FROM Production.Product AS p
 WHERE p.Color = 'Red'
 ORDER BY
     p.Name
 OFFSET 0 ROWS FETCH NEXT @pagina ROWS ONLY

No hay comentarios:

Publicar un comentario