SQL server分页的三种方法
一、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
SQL server分页的三种方法的更多相关文章
- SQL server分页的四种方法
SQL server分页的四种方法 1.三重循环: 2.利用max(主键); 3.利用row_number关键字: 4.offset/fetch next关键字 方法一:三重循环思路 先取前20页, ...
- SQL server分页的四种方法(算很全面了)
这篇博客讲的是SQL server的分页方法,用的SQL server 2012版本.下面都用pageIndex表示页数,pageSize表示一页包含的记录.并且下面涉及到具体例子的,设定查询第2 ...
- SQL Server中的三种Join方式
1.测试数据准备 参考:Sql Server中的表访问方式Table Scan, Index Scan, Index Seek 这篇博客中的实验数据准备.这两篇博客使用了相同的实验数据. 2.SQ ...
- SQL SERVER 2008 中三种分页方法与总结
建立表: CREATE TABLE [TestTable] ( , ) NOT NULL , ) COLLATE Chinese_PRC_CI_AS NULL , ) COLLATE Chinese_ ...
- SQL Server启动的几种方法
SQL Server 启动有以下几种方法: (1)在Control Panel——Administrative Tools——Services,找到SQL Server (XXX)进行启动. 其中XX ...
- 浅谈SQL Server中的三种物理连接操作
简介 在SQL Server中,我们所常见的表与表之间的Inner Join,Outer Join都会被执行引擎根据所选的列,数据上是否有索引,所选数据的选择性转化为Loop Join,Merge J ...
- SQL Server中的三种物理连接操作
来源:https://msdn.microsoft.com/zh-cn/library/dn144699.aspx 简介 在SQL Server中,我们所常见的表与表之间的Inner Join,Out ...
- SQL Server 备份的 8 种方法。
方法 1. 完整备份 方法 2. 差异备份 方法 3. 部分备份(备份数据库的read_write部分) 方法 4. 文件备份 方法 5. 文件组备份 方法 6. 只复制备份 方法 7. 日志备份 - ...
- 浅谈SQL Server中的三种物理连接操作(HASH JOIN MERGE JOIN NESTED LOOP)
简介 在SQL Server中,我们所常见的表与表之间的Inner Join,Outer Join都会被执行引擎根据所选的列,数据上是否有索引,所选数据的选择性转化为Loop Join,Merge J ...
- 浅谈SQL Server中的三种物理连接操作(Nested Loop Join、Merge Join、Hash Join)
简介 在SQL Server中,我们所常见的表与表之间的Inner Join,Outer Join都会被执行引擎根据所选的列,数据上是否有索引,所选数据的选择性转化为Loop Join,Merge J ...
随机推荐
- linux配置定时备份mysql数据库
1.创建备份目录 # mkdir /mydata/bak2.创建备份脚本 # vi /usr/sbin/bakmysql.sh #!/bin/bash #Name:bakmysql.sh #This ...
- WEB攻击与防御技术 pikachu——sql注入
如图所示,sql注入 一.数字型注入 既然是post那我们拿burp抓一下包 id=2,我们改一下sql最常用的语句2 or 1=1发现注入成功 二.字符型注入 直接上语句1' or 1=1 # 出来 ...
- kubectl使用方法及常用命令小结
Kubectl 是一个命令行接口,用于对 Kubernetes 集群运行命令.kubectl 在 $HOME/.kube 目录中寻找一个名为 config 的文件. kubectl安装方法详见:htt ...
- 导航条透明,ios11系统,会出现偏移64的问题
在当前页面加入下面方法 - (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.navigation ...
- vscode php 方法无法跳转问题
安装扩展 PHP IntelliSense #路径感知 PHP Intelephense #自动补全 PHP DocBlocker #在类或属性.方法上面敲/**回车自动生成参数注释等 PHP Na ...
- OPENSUSE网速慢
无线网卡是Broadcom 4313,刚安装完opensuse,网速只有60Kb左右. 添加packman私有驱动后,网速才正常起来.
- 第8章 使用标记帮助工具构建表单(ASP.NET Core in Action, 2nd Edition)
本章包括 使用Tag Helpers轻松构建表单 使用锚标记帮助程序生成URL 使用Tag Helpers为Razor添加功能 在第7章中,您了解了Razor模板以及如何使用它们为应用程序生成视图.通 ...
- 文献阅读笔记——Boosting the Performance of CDCL-Based SAT Solvers by Exploiting Backbones and Backdoors
Boosting the Performance of CDCL-Based SAT Solvers by Exploiting Backbones and Backdoors 布尔结构措施 本研究考 ...
- ADB 命令 使用
基本用法 命令语法 为命令指定目标设备 启动/停止 查看 adb 版本 以 root 权限运行 adbd 指定 adb server 的网络端口 设备连接管理 查询已连接设备/模拟器 USB 连接 无 ...
- mysql 设置相关
告诉mysql客户端这边的文字编码 告诉mysql希望返回的结果集编码: set character_set_client=gbk; set character_set_results=gbk; ...