SqlServer ROW_NUMBER() Over()分页

-- ROW_NUMBER() Over() 分页,计算公式 ((@pageIndex - 1) * @pageSize) + 1 And ( @pageIndex * @pageSize )

DECLARE @pageSize INT
DECLARE @pageIndex INT
DECLARE @keyWords NVARCHAR(50)

SET @pageIndex = 1
SET @pageSize = 5
SET @keyWords = N''

SELECT *
FROM (
SELECT
s.Sname AS 学生,
c.Cname AS 分数,
sc.score AS 科目,
t.Tname AS 授课老师,
ROW_NUMBER() OVER (ORDER BY s.SID) AS RowNumber
FROM Student s
INNER JOIN SC sc ON s.SId = sc.SId
INNER JOIN Course c ON sc.CId = c.CId
INNER JOIN Teacher t ON c.TId = t.TId
WHERE s.Sname LIKE '%' + @keyWords + '%'
) AS res
WHERE RowNumber BETWEEN ((@pageIndex - 1) * @pageSize) + 1 AND (@pageIndex * @pageSize)

posted @ 2023-03-04 21:35  含泪拒绝王阿姨i  阅读(71)  评论(0)    收藏  举报