GO
CREATE PROC proc_ceshi
@Index INT,
@Size INT,
@Where NVARCHAR(500),
@Order NVARCHAR(100),
@RowCount INT,
@PageCount INT
AS
BEGIN
--1、耗时长,效率低的一种分页方式不建议使用
SELECT TOP(@Size)* FROM [TABLE] Where 1 = 1 AND ID NOT IN (SELECT TOP((@Index-1)*@Size)ID FROM [TABLE])
--2、Row_Number是最常见的一种分页方式,兼容性高。
SELECT TOP(@Size)* FROM (SELECT ROW_NUMBER() OVER(ORDER BY CreateDate) NumberID,* FROM [TABLE]) AS Table1 Where 1 = 1 AND NumberID BETWEEN (@Index-1) * @Size AND @Index * @Size
--3、耗时短,效率高,速度快,好像是SQL2012以上版本支持这种方式。
SELECT * FROM [TABLE] ORDER BY ID OFFSET ((@Index-1)* @Size) ROWS FETCH NEXT @Size ROWS only
END
SqlServer 分页
于 2023-10-27 10:27:59 首次发布