SQL Server使用row_number分页的实现方法
作者:ajunfly 发布时间:2024-01-28 21:02:38
标签:SQL,Server,row,number,分页
本文为大家分享了SQL Server使用row_number分页的实现方法,供大家参考,具体内容如下
1、首先是
select ROW_NUMBER() over(order by id asc) as 'rowNumber', * from table1
生成带序号的集合
2、再查询该集合的 第 1 到第 5条数据
select * from
(select ROW_NUMBER() over(order by id asc) as 'rowNumber', * from table1) as temp
where rowNumber between 1 and 5
完整的Sql语句
declare @pagesize int; declare @pageindex int; set @pagesize = 3
set @pageindex = 1; --第一页
select * from (select ROW_NUMBER() over(order by id asc) as 'rowNumber', * from table1) as temp where rowNumber between (((@pageindex-1)*@pagesize)+1) and (@pageindex*@pagesize)
set @pageindex = 2; --第二页
select * from (select ROW_NUMBER() over(order by id asc) as 'rowNumber', * from table1) as temp where rowNumber between (((@pageindex-1)*@pagesize)+1) and (@pageindex*@pagesize)
set @pageindex = 3; --第三页
select * from (select ROW_NUMBER() over(order by id asc) as 'rowNumber', * from table1) as temp where rowNumber between (((@pageindex-1)*@pagesize)+1) and (@pageindex*@pagesize)
set @pageindex = 4;--第四页
select * from (select ROW_NUMBER() over(order by id asc) as 'rowNumber', * from table1) as temp where rowNumber between (((@pageindex-1)*@pagesize)+1) and (@pageindex*@pagesize)
下面我们来写个存储过程分页
Alter Procedure PagePager
@TableName varchar(80),
@File varchar(1000),---
@Where varchar(500),---带and连接
@OrderFile varchar(100), -- 排序字段
@OrderType varchar(10),--asc:顺序,desc:倒序
@PageSize varchar(10), --
@PageIndex varchar(10) --
as
if(ISNULL(@OrderFile, '') = '')
begin
set @OrderFile = 'ID';
end
if(ISNULL(@OrderType,'') = '')
begin
set @OrderType = 'asc'
end
if(ISNULL(@File,'') = '')
begin
set @File = '*'
end
declare @select varchar(8000)
set @select = ' select ' + @File + ' from ( select *,ROW_NUMBER() over(order by ' + @OrderFile + ' '+ @OrderType + ') as ''rowNumber'' from ' + @TableName + ' where 1=1 ' + @Where + ' ) temp where rowNumber between (((' + @PageIndex + ' - 1) * ' + @PageSize + ')+1) and (' + @PageIndex + '*'+ @PageSize+')'
exec(@select)


猜你喜欢
- 问题现象元素的属性中没有id、name;虽然有class,但比较大众化,且位置也不固定;例如:页码中的下一页;那该如何找到该元素?<a
- 开放源代码社区为了扩展MySQL的使用范围,开发出了.Net框架(.NET Framework)中可以使用的数据库连接器。我们就来学习一下如
- 信号(signals)Flask信号(signals, or event hooking)允许特定的发送端通知订阅者发生了什么(既然知道发生
- PIL和PillowPIL(Python Image Library)是一个非常流行的Python图像处理库,但自从2011年以来就没有更新
- 目录你应该拥有的东西安装开始轻敲截图高级点击TemplateMatching滑动打电话给某人从手机下载文件到电脑手机录屏打开手机发送 Wha
- <html><head><meta http-equiv="Content-T
- 使用存储过程,在操作数据库时开启事务,避免并发时同时操作造成数据重复CREATE DEFINER=`root`@`localhost` PR
- 片头Python看了差不多三四天吧,基本上给基础看差不多了。写个管理系统吧,后续不出意外SQL、文件存储版本都会更。学习Python感想:
- 大家在使用PyCharm的过程中,肯定会遇到各种各样的问题,其中一个问题就是很多第三方的包安装不了。在使用过程中,我对这种情况进行了总结,现
- 本文给大家介绍PHP中Http协议post请求参数,具体内容如下所示:WEB开发中信息基本全是在POST与GET请求与响应中进行,GET因其
- 导言在前面三节的示例中,GridView和DetailsView控件使用的是绑定列和CheckBoxField(绑定GridView和Det
- batch很好理解,就是batch size。注意在一个epoch中最后一个batch大小可能小于等于batch sizedataset.r
- 解决办法一(ThinkPHP官方提供的办法,我并没有测试过):升级到ThinkPHP3.1最新的UploadFile.class.php(h
- MySQL8服务无法正常启动的解决(1053错误)第一种方法初始化后在Mysql的根目录会生成 data 数据库文件夹,如果启动服务失败,很
- Python运算符重载 Python语言提供了运算符重载功能,增强了语言的灵活性
- 一级行政区经纬度一级行政区(省级行政区):34个(23个省、5个自治区、4个直辖市、2个特别行政区)provinces = {
- 本文实例讲述了PHP global全局变量的使用与注意事项。分享给大家供大家参考,具体如下:使用global在方法里面声明外部变量为全局变量
- 用python做一个简单的随机点名程序(不重复点名)这是我来到csdn的第一篇文章,内容如果有瑕疵的地方或者代码可以进一步改善,请大家对我指
- 今天,在项目中遇到一个问题,两个js页面要共享一个就js对象。js全局变量和静态变量都不行,其他苦逼的小农们就不要去强求了。而LZ又不想用c
- 建立随机生成的HTML代码是一件相当容易实现的ASP特性。你可能创建过“每日一帖”、滚动广告等等,只需要稍加点缀就会令你的网站日久弥新。对存