Sql server2008怎样分页

Sql server2008怎样分页,第1张

你可以用存储过程分页,如下存储过程支持分页和排序:

CREATE PROCEDURE GetSortedMovies

(

@SortExpression NVarChar(100),

@StartRowIndex INT,

@MaximumRows INT

)

AS

-- 创建一个临时表存储查询结果

CREATE TABLE #PageIndex

(

IndexId INT IDENTITY (1,1) NOT NULL,

RecordId INT

)

-- 插入临时表

INSERT INTO #PageIndex (RecordId)

SELECT Id FROM Movies

ORDER BY

CASE WHEN @SortExpression='Id' THEN Id END ASC,

CASE WHEN @SortExpression='Id DESC' THEN Id END DESC,

CASE WHEN @SortExpression='Title' THEN Title END ASC,

CASE WHEN @SortExpression='Title DESC' THEN Title END DESC,

CASE WHEN @SortExpression='Description' THEN Description END ASC,

CASE WHEN @SortExpression='Description DESC' THen Description END DESC

-- 得到页数

SELECT Id,Title,Description FROM Movies

INNER JOIN #PageIndex WITH (nolock)

ON Movies.Id = #PageIndex.RecordId

WHERE #PageIndex.IndexId >@StartRowIndex

AND #PageIndex.IndexId <(@StartRowIndex + @MaximunRows + 1)

ORDER BY #PageIndex.IndexId

SELECT t.字段名 FROM (

SELECT 字段(可以是多表关联的字段) ,

row_number() over(order by 某个排序字段 desc) r

FROM 表名 where 过滤条件 ) t

where t.r <= (每页显示条数*要查询的页) and t.r >(每页显示条数*(要查询的页-1))

有疑问可以再问

望采纳


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9887011.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存