常用的sql查询语句有哪些sqlserver 分页查询语句
SQL Server是一种关系型数据库管理系统,支持分页查询语句,能够使查询的结果进行分页展示,方便用户查看。下面列举10个常用的SQL Server分页查询语句。
1.使用ROW_NUMBER()函数实现分页查询
ROW_NUMBER()函数可以为查询结果中的每一行分配一个唯一的序号,通过设置分页参数OFFSET和FETCH NEXT来实现分页查询。示例代码如下:
SELECT * FROM
(SELECT ROW_NUMBER() OVER (ORDER BY id) AS row_num, * FROM table_name) AS temp_table
WHERE row_num >= (@page - 1) * @page_size + 1 AND row_num <= @page * @page_size
ORDER BY id;
其中,@page是当前页面数,@page_size是每页的记录数,table_name是要查询的表名,id是用于排序的字段。
2.使用OFFSET和FETCH NEXT实现分页查询
OFFSET和FETCH NEXT可以直接设置分页参数,实现分页查询。示例代码如下:
SELECT * FROM table_name
ORDER BY id OFFSET (@page - 1) * @page_size ROWS FETCH NEXT @page_size ROWS ONLY;
其中,OFFSET表示从查询结果的第几行开始返回记录,FETCH NEXT表示返回多少行记录,table_name是要查询的表名,id是用于排序的字段。
3.使用TOP和OFFSET-FETCH实现分页查询
TOP可以限制查询结果的记录数,结合OFFSET-FETCH实现分页查询。示例代码如下:
SELECT TOP (@page_size) * FROM table_name
WHERE id NOT IN (SELECT TOP (@page_size * (@page - 1)) id FROM table_name ORDER BY id)
ORDER BY id;
其中,@page_size是每页的记录数,@page是当前页面数,table_name是要查询的表名,id是用于排序的字段。
4.使用子查询实现分页查询
子查询可以先查询出所有记录,再根据分页参数筛选出需要的记录。示例代码如下:
SELECT * FROM
(SELECT ROW_NUMBER() OVER (ORDER BY id) AS row_num, * FROM table_name) AS temp_table
WHERE row_num BETWEEN (@page - 1) * @page_size + 1 AND @page * @page_size
ORDER BY id;
其中,@page是当前页面数,@page_size是每页的记录数,table_name是要查询的表名,id是用于排序的字段。
5.使用CTE实现分页查询
CTE是通用表表达式,可以在查询中定义一个临时表,用于分页查询。示例代码如下:
WITH temp_table AS (
SELECT ROW_NUMBER() OVER (ORDER BY id) AS row_num, * FROM table_name
)
SELECT * FROM temp_table
WHERE row_num BETWEEN (@page - 1) * @page_size + 1 AND @page * @page_size
ORDER BY id;
其中,@page是当前页面数,@page_size是每页的记录数,table_name是要查询的表名,
id是用于排序的字段。
6.使用OFFSET和LIMIT实现分页查询
LIMIT可以限制查询结果的记录数,结合OFFSET实现分页查询。示例代码如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论