星期五, 9月 28, 2018

[SQL] 分頁 - TOP

紀錄在 SQL2000 上要做到分頁效果

使用 TOP 語法來達到
USE [AdventureWorks2016]
GO

CREATE PROCEDURE uspPagingByTop (@PageIndex int , @PageRow int )
AS
  BEGIN
    DECLARE @Query nvarchar(800) 
    SET @Query=
    '
    SELECT TOP ' + CONVERT(NVARCHAR(3),@PageRow)+' *
    FROM Sales.SalesOrderHeader
    WHERE SalesOrderID NOT IN
    (
      SELECT TOP ' + CONVERT(NVARCHAR(3), @PageRow * (@PageIndex-1) ) + ' SalesOrderID
      FROM Sales.SalesOrderHeader
      ORDER BY SalesOrderID
    )
    ORDER BY SalesOrderID'

    EXEC (@Query)
  END
執行 Store Procedure 要取出 第 2 頁,每頁 10 筆資料的分頁資料
EXEC uspPagingByTop 2 , 10
左結果為分頁結果、右結果為直接 Select 全部資料,搭配 SSMS 的資料編號來閱讀
[SQL] 分頁 - TOP

沒有留言:

張貼留言