查询M-N条记录
方法一:表分页数据查询:在t1里面先用函数ROW_NUMBER()对结果集获取以及排序.t1里面可以增加WHERE条件,再从t1里面的RowIndex获取第几行数据 BETWEEN 16 AND 30 如下获取第二页数据,pagesize=15 pageno=2
SELECT * FROM(SELECT * ,ROW_NUMBER() OVER(ORDER BY id ASC) AS RowIndex
FROM TB_Form WHERE FormStateId=3) AS t1 WHERE RowIndex BETWEEN 16 AND 30
pagesize=15
第n页
startindex:15*(n-1)+1
endindex:15*n
方法二:利用order by子句关键字解析: Offset子句:用于指定跳过(Skip)的数据行; Fetch子句:该子句在Offset子句之后执行,表示在跳过(Sikp)指定数量的数据行之后,返回一定数据量的数据行; 执行顺序:Offset子句必须在Order By 子句之后执行,Fetch子句必须在Offset子句之后执行;
分页实现的思路: 在分页实现中,使用Order By子句,按照指定的columns对结果集进行排序; 使用Offset子句跳过前N页:Offset (@PageIndex-1)*@PageSize rows; 使用Fetch子句呈现当前Page:Fetch next @PageSize rows only;
https://www.cnblogs.com/ljhdo/p/4861263.html
SELECT Id,BookName,Author FROM dbo.BookInfo
--ORDER BY (SELECT 1) ASC 按照原来排序
--下面获取第二页(页大小=2)的数据
SELECT Id,BookName,Author FROM dbo.BookInfo ORDER BY (SELECT 1) ASC
OFFSET 2 ROWS FETCH NEXT 2 ROWS ONLY


浙公网安备 33010602011771号