sqlserver 分页 sql
时间: 2024-07-31 22:01:00 浏览: 64
sql server 分页
SQL Server中的分页查询通常通过`TOP`和`OFFSET`关键字或者`ROW_NUMBER()`函数来实现。以下是两种常见的方法:
1. **使用`TOP`和`OFFSET`**:
```sql
SELECT *
FROM (
SELECT *, ROW_NUMBER() OVER (ORDER BY [your_sort_column]) AS row_num
FROM your_table
) ranked_records
OFFSET @offset ROWS
FETCH NEXT @pageSize ROWS ONLY;
```
这里,`@offset`是当前页开始的位置,`@pageSize`是每页显示的记录数。你需要替换 `[your_sort_column]` 和 `your_table` 为你实际的排序列名和表名。
2. **使用`ROW_NUMBER()`**:
```sql
WITH pagination AS (
SELECT *, ROW_NUMBER() OVER (ORDER BY [your_sort_column]) AS row_num
FROM your_table
)
SELECT * FROM pagination
WHERE row_num BETWEEN (@pageNumber - 1) * @pageSize + 1 AND @pageNumber * @pageSize;
```
在这个例子中,`@pageNumber`是页码,计算出实际的行范围限制。
阅读全文