You can install the AdventureWorks database and you can run following queries based on your version.
USE AdventureWorks2012 GO -------------------------------------------------- -- SQL Server 2012 -------------------------------------------------- DECLARE @RowsPerPage INT = 10, @PageNumber INT = 6 SELECT SalesOrderDetailID, SalesOrderID, ProductID FROM Sales.SalesOrderDetail ORDER BY SalesOrderDetailID OFFSET (@PageNumber-1)*@RowsPerPage ROWS FETCH NEXT @RowsPerPage ROWS ONLY GO -------------------------------------------------- -- SQL Server 2008 / R2 -- SQL Server 2005 -------------------------------------------------- DECLARE @RowsPerPage INT = 10, @PageNumber INT = 6 SELECT SalesOrderDetailID, SalesOrderID, ProductID FROM ( SELECT SalesOrderDetailID, SalesOrderID, ProductID, ROW_NUMBER() OVER (ORDER BY SalesOrderDetailID) AS RowNum FROM Sales.SalesOrderDetail ) AS SOD WHERE SOD.RowNum BETWEEN ((@PageNumber-1)*@RowsPerPage)+1 AND @RowsPerPage*(@PageNumber) GO -------------------------------------------------- -- SQL Server 2000 -------------------------------------------------- DECLARE @RowsPerPage INT = 10, @PageNumber INT = 6 SELECT SalesOrderDetailID, SalesOrderID, ProductID FROM ( SELECT TOP (@RowsPerPage) SalesOrderDetailID, SalesOrderID, ProductID FROM ( SELECT TOP ((@PageNumber)*@RowsPerPage) SalesOrderDetailID, SalesOrderID, ProductID FROM Sales.SalesOrderDetail ORDER BY SalesOrderDetailID ) AS SOD ORDER BY SalesOrderDetailID DESC ) AS SOD2 ORDER BY SalesOrderDetailID ASC GO
I am sure there are better and efficient ways but the tricks demonstrated above just works. Please feel free to leave a comment with your suggestions.
SUMBER
0 comments:
Post a Comment