荆州偏将为什么:How to OrderPage by SQL

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 22:19:03
CREATE PROCEDURE northwind_OrdersPaged ( @PageIndex int, @PageSize int )
AS
BEGIN
DECLARE @PageLowerBound int
DECLARE @PageUpperBound int
DECLARE @RowsToReturn int
-- First set the rowcount
SET @RowsToReturn = @PageSize * (@PageIndex + 1)
SET ROWCOUNT @RowsToReturn
-- Set the page bounds
SET @PageLowerBound = @PageSize * @PageIndex
SET @PageUpperBound = @PageLowerBound + @PageSize + 1
-- Create a temp table to store the select results
CREATE TABLE #PageIndex ( IndexId int IDENTITY (1, 1) NOT NULL, OrderID int )
-- Insert into the temp table
INSERT INTO #PageIndex (OrderID) SELECT OrderID FROM Orders ORDER BY OrderID DESC
-- Return total count
SELECT COUNT(OrderID) FROM Orders
-- Return paged results
SELECT O.* FROM Orders O, #PageIndex PageIndex
    WHERE O.OrderID = PageIndex.OrderID AND PageIndex.IndexID > @PageLowerBound
    AND PageIndex.IndexID < @PageUpperBound
    ORDER BY PageIndex.IndexID END