美文网首页
sql server翻页查询

sql server翻页查询

作者: 吉凶以情迁 | 来源:发表于2024-04-02 17:37 被阅读0次
DECLARE @pageNumber INT = -- 前端传来的页码 从1开始
DECLARE @pageSize INT = -- 前端传来的每页大小
SELECT *
FROM Students
ORDER BY BirthDate
OFFSET (@pageNumber - 1) * @pageSize ROWS
FETCH NEXT @pageSize ROWS ONLY;

注意 ,不能再和top共用了。

OFFSET (@pageNumber - 1) * @pageSize ROWS
FETCH NEXT @pageSize ROWS ONLY;

这句话固定插入到尾部

需要2012以及以后版本支持

另外的实现方式 ,这种方式个人感觉侵入性太大,那些语句都要调整。

DECLARE @pageNumber INT = -- 这里接收前端传来的页码
DECLARE @pageSize INT = -- 这里接收前端传来的每页大小

-- 使用ROW_NUMBER()函数创建临时序列
WITH Paging AS (
    SELECT 
        ROW_NUMBER() OVER (ORDER BY BirthDate) AS RowNum,
        s.*
    FROM 
        Students s
)
-- 根据页码和每页大小选取指定范围内的记录
SELECT * 
FROM Paging
WHERE RowNum BETWEEN (@pageNumber - 1) * @pageSize + 1 AND @pageNumber * @pageSize;

相关文章

网友评论

      本文标题:sql server翻页查询

      本文链接:https://www.haomeiwen.com/subject/eqbwtjtx.html