使用OFFSET和FETCH子句实现分页查询,SELECT * FROM 表名 ORDER BY 排序列名 OFFSET (页码-1)*每页数量 ROWS FETCH NEXT 每页数量 ROWS ONLY。
在 SQL Server 中,可以使用以下方法进行分页查询:
1、使用 OFFSET
和 FETCH
子句:
OFFSET
用于指定跳过的行数。
FETCH
用于指定要返回的行数。
示例代码:
```sql
SELECT * FROM 表名
ORDER BY 排序列名
OFFSET 跳过的行数 ROWS
FETCH NEXT 要返回的行数 ROWS ONLY;
```
2、使用 ROW_NUMBER()
函数:
ROW_NUMBER()
函数为结果集中的每一行分配一个唯一的数字。
可以使用 WHERE
子句过滤行,并使用 ORDER BY
子句对结果进行排序。
示例代码:
```sql
WITH 排序列名 AS (
SELECT *, ROW_NUMBER() OVER (ORDER BY 排序列名) AS 行号
FROM 表名
)
SELECT * FROM 排序列名
WHERE 行号 >= 起始行号 AND 行号 <= 结束行号;
```
3、使用 CTE(公共表表达式)
:
CTE 允许将查询分解为多个步骤,并在每个步骤中定义临时结果集。
可以使用 ROW_NUMBER()
函数和 CTE
结合进行分页查询。
示例代码:
```sql
WITH 排序列名 AS (
SELECT *, ROW_NUMBER() OVER (ORDER BY 排序列名) AS 行号
FROM 表名
)
SELECT * FROM 排序列名
WHERE 行号 >= @起始行号 AND 行号 <= @结束行号;
```
4、使用 TOP
和 PERCENT
:
TOP
用于指定要返回的行数。
PERCENT
用于指定要返回的行的百分比。
示例代码:
```sql
SELECT TOP @要返回的行数 PERCENT * FROM 表名
ORDER BY 排序列名;
```
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/500847.html