首页 > 数据库 >SQL server分页的三种方法

SQL server分页的三种方法

时间:2023-03-19 16:00:52浏览次数:36  
标签:datacount 分页 pageSize -- server int SQL DBTest select

一、Entity Framework的Linq语句的分页写法:

 var datacount  = test.OrderBy(t => t.testID)
                    .Skip(pageSize * (pageIndex - 1))
                    .Take(pageSize).ToList();

二、SQL Server分页的SQL语句写法:

select
top (需要显示的条目数) *
from
DBTest
where TestID not in
(select top (需要剔除的条目数) TestID from DBTest)

三、SQL Server分页的存储过程写法:

第一种:

create proc proc_TestPage
@PageIndex  int --第几页
@PageSize  int  --每页显示的条数
@pageCount int output	--总的页数,因为需要显示页数,因此是个输出参数
as
declare @datacount int	--总数据条数
select @datacount=count(*) from DBTest--获得总数据条数值并赋给参数
set @pageCount=ceiling(1.0*@datacount/@pageSize)	--获得总页数,并赋给参数
select top(@PageSize) *  from DBTest where TestID not int (select top(@PageSize*(@PageIndex-1)) from DBTest)
select @PageCount=Count(*) from DBTest

第二种:

create proc P_Test	--创建存储过程P_Test
@pageSize int,	--每页数据条数
@pageIndex int,	--当前页数(页码)
@pageCount int output	--总的页数,因为需要显示页数,因此是个输出参数
as
declare @datacount int	--总数据条数
select @datacount=count(*) from DBTest --获得总数据条数值并赋给参数
set @pageCount=ceiling(1.0*@datacount/@pageSize)	--获得总页数,并赋给参数
--接下来是获得指定页数据
select * from
(select *,row_number() over(order by TestID ) as num from DBTest) as temp
where num between @pageSize*(@pageIndex-1)+1 and @pageSize*@pageIndex

标签:datacount,分页,pageSize,--,server,int,SQL,DBTest,select
From: https://www.cnblogs.com/lucasDC/p/17233400.html

相关文章

  • sqli-labs安装
    前期所需的准备:sqli-labs安装包sqli-labs下载地址php5.4.45的环境(环境太高可能会导致有些函数无法运行)安装将下载好的zip文件解压到PHPstudy的www目录下打开ph......
  • SQL Server交叉表应用示例
    说明一、建立表主要有三列列:FeeDeptID(科室编号),ItemiD(项目编号),金额FeeDeptID,ItemiD关联其他表二、创建存储过程CreatePROCEDURE存储过程1@fromDatedate, @ToDate......
  • sql join on和不用join区别_图解 SQL 各种 JOIN,太有用了!
    原文地址:https://blog.csdn.net/weixin_39965283/article/details/111390490  前言在各种问答社区里谈及SQL里的各种JOIN之间的区别时,最被广为引用的是CodeProj......
  • 力扣586(MySQL)-订单最多的客户(简单)
    题目:编写一个SQL查询,为下了最多订单的客户查找customer_number。测试用例生成后,恰好有一个客户比任何其他客户下了更多的订单。查询结果格式如下所示。 进阶......
  • 力扣584(MySQL)-寻找用户推荐人(简单)
    题目:给定表 customer ,里面保存了所有客户信息和他们的推荐人。写一个查询语句,返回一个客户列表,列表中客户的推荐人的编号都 不是 2。对于上面的示例数据,结果为: ......
  • SQL分组查询
    1前言SQL中分组查询分为GROUPBY分组和COMPUTEBY分组两种。笔者以案例的形式分别讲解两种查询方式。在SQLServer数据库上建立staff表,以eid为主键,表数据如下:2GR......
  • 如何将Lync/Skype服务器KHI数据导入到SQL Server数据库
    介绍关键运行状况指标KHI(KeyHealthIndicators)是具有阈值的性能计数器,旨在揭示用户体验问题。通常,当我们看到Lync语音质量问题或性能问题(速度慢/掉线等)时,我们会查看性能......
  • SQL函数大全和用法
    正常Gender字段,因为一些原因,使用了bit类型,0表示男,1表示女,我们在查询的时候,只会显示ture或者falseselectIdas编号,Nameas姓名,Genderas性别FromTable_User......
  • mysql的初体验——重装解决99%的问题
    这两天被java_web的作业搞得头皮发麻,主要原因就是因为jdbc连接数据库一直失败,甚至差点把电脑搞崩,删个注册表,结果用户变量也被删了,心态直接炸裂。有以下几个地方,引以为戒:1.......
  • mysql小知识点---interactive_timeout和wait_timeout区别
    interactive_timeout定义了对于交互式连接(比如使用cmd命令窗口或者在linux上连接msyql),服务器等待的最大时间,如果超过这个时间,服务端仍然没有受到数据,则会关闭连接;【我理解......