sql server实现分页的方法实例分析
本文实例讲述了sql server实现分页的方法。分享给大家供大家参考,具体如下:
declare @index int,@num int set @index = 1--当前页 set @num = 2--单页包含的行数 --分页1 select top (@num) * from ppohd where doccode not in ( select top (@num * (@index -1)) doccode from ppohd order by doccode ) order by doccode --分页2 select top (@num) * from ppohd where doccode >= ( select max(doccode) from ( select top (@num * (@index - 1) + 1) doccode from ppohd order by doccode ) as tb ) --分页3 select top (@num) * from ( select ppohd.doccode as 'mydoccode',row_number() over (order by doccode) as sno,* from ppohd ) as tb where tb.sno >= @num * (@index - 1) + 1 --分页4 select * from ( select ppohd.doccode as 'mydoccode', row_number() over(order by doccode) as sno,* from ppohd ) as tb where tb.sno between (@num * (@index - 1) + 1) and (@num * @index)
更多关于SQL Server相关内容感兴趣的读者可查看本站专题:《SQL Server分页技术总结》、《SQL Server查询操作技巧大全》、《SQL Server存储过程技巧大全》、《SQL Server索引操作技巧大全》、《SQL Server常用函数汇总》及《SQL Server日期与时间操作技巧总结》
希望本文所述对大家SQL Server数据库程序设计有所帮助。
相关推荐
-
sqlserver分页的两种写法分别介绍
第一种是最传统的写法,用存储过程中的变量作为分页的乘数 复制代码 代码如下: [c-sharp] view plaincopyprint?create proc p_paged1 @pageSize int,@currentPage int as select top (@pageSize) * from student where id not in (select top (@pageSize*(@currentPage-1)) id from student) go exec p_page
-
五种SQL Server分页存储过程的方法及性能比较
在SQL Server数据库操作中,我们常常会用到存储过程对实现对查询的数据的分页处理,以方便浏览者的浏览.本文我们总结了五种SQL Server分页存储过程的方法,并对其性能进行了比较,接下来就让我们来一起了解一下这一过程. 创建数据库data_Test : create database data_Test GO use data_Test GO create table tb_TestTable --创建表 ( id int identity(1,1) primary key, userN
-
SQL Server 分页查询存储过程代码
复制代码 代码如下: CREATE PROCEDURE [dbo].[up_Pager] @table varchar(2000), --表名 @col varchar(50), --按该列来进行分页 @orderby bit, --排序,0-顺序,1-倒序 @collist varchar(800),--要查询出的字段列表,*表示全部字段 @pagesize int, --每页记录数 @page int, --指定页 @condition varchar(800) --查询条件 AS DECL
-
sqlserver 存储过程分页(按多条件排序)
cs页面调用代码: 复制代码 代码如下: public int TotalPage = 0; public int PageCurrent = 1; public int PageSize = 25; public int RowsCount = 0; string userid, username; public DataTable dt = new DataTable(); public string path, userwelcome; public string opt,cid; pro
-
SQL Server 分页查询通用存储过程(只做分页查询用)
自开始做项目以来,一直在用.这段存储过程的的原创者(SORRY,忘记名字了),写得这段SQL代码很不错,我在这个基础上,按照我的习惯以及思维方式,调整了代码,只做分页查询用. /*---------------------------------------------- *procedure name : P_PageResult * author :Fay * create date : 2014-07-18 */ CREATE PROCEDURE prcPageResult -- 获得某一
-
真正高效的SQLSERVER分页查询(多种方案)
Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID.YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页查询每页30条,查询第1500页(即第45001-45030条数据),字段ID聚集索引,YEAR无索引,Sqlserver版本:2008R2 第一种方案.最简单.普通的方法: 复制代码 代码如下: SELECT TOP 30 * FROM ARTICLE WHERE ID NOT IN(SELECT T
-
sqlserver 通用分页存储过程
复制代码 代码如下: create proc commonPagination @columns varchar(500), --要显示的列名,用逗号隔开 @tableName varchar(100), --要查询的表名 @orderColumnName varchar(100), --排序的列名 @order varchar(50), --排序的方式,升序为asc,降序为 desc @where varchar(100), --where 条件,如果不带查询条件,请用 1=1 @pageIn
-
Sql Server 2012 分页方法分析(offset and fetch)
其中 offset and fetch 最重要的新特性是 用来 分页,既然要分析 分页,就肯定要和之前的分页方式来比较了,特别是 Row_Number() 了,在比较过程中,发现了蛮多,不过最重要的,通过比较本质,得出了优劣,也和大家一起分享下. 准备工作,建立测试表:Article_Detail,主要是用来存放一些文章信息,测试的时间,都是从网易上面转载的新闻,同时,测试表数据字段类型是比较均匀的,为了更好的测试,表结构如下图: 内容: 数据量:129,991 条记录 语法分析 1. NTIL
-
oracle,mysql,SqlServer三种数据库的分页查询的实例
MySql: MySQL数据库实现分页比较简单,提供了 LIMIT函数.一般只需要直接写到sql语句后面就行了.LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第二个参数指定最多返回行数.例如:select * from table WHERE - LIMIT 10; #返回前10行select * from table WHERE - LIMIT 0,10; #返回前
-
sql server中千万数量级分页存储过程代码
/* *************************************************************** ** 中国无忧商务网千万数量级分页存储过程 ** *************************************************************** 参数说明: 1.Tables :表名称,视图 2.PrimaryKey :主关键字 3.Sort :排序语句,不带Order By 比如:NewsID Desc,OrderRows Asc
-
sqlserver 高性能分页实现分析
先来说说实现方式: 1.我们来假定Table中有一个已经建立了索引的主键字段ID(整数型),我们将按照这个字段来取数据进行分页. 2.页的大小我们放在@PageSize中 3.当前页号我们放在@CurrentPage中 4.如何让记录指针快速滚动到我们要取的数据开头的那一行呢,这是关键所在!有了Set RowCount,我们就很容易实现了. 5.如果我们成功地滚动记录指针到我们要取的数据的开头的那一行,然后我们把那一行的记录的ID字段的值记录下来,那么,利用Top和条件,我们就很容易的得到指定页
-
SQL SERVER 2008 中三种分页方法与比较
建立表: 复制代码 代码如下: CREATE TABLE [TestTable] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL , [LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL , [Country] [nvarchar] (50) COLLATE Chinese_PRC_
-
高效的SQLSERVER分页查询(推荐)
第一种方案.最简单.普通的方法: 复制代码 代码如下: SELECT TOP 30 * FROM ARTICLE WHERE ID NOT IN(SELECT TOP 45000 ID FROM ARTICLE ORDER BY YEAR DESC, ID DESC) ORDER BY YEAR DESC,ID DESC 平均查询100次所需时间:45s 第二种方案: 复制代码 代码如下: SELECT * FROM ( SELECT TOP 30 * FROM (SELECT TOP 4503
-
sqlserver2005使用row_number() over分页的实现方法
语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) <BR> 例子: 复制代码 代码如下: select * from ( select *, ROW_NUMBER() OVER(Order by a.CreateTime DESC ) AS RowNumber from table_name as a ) as b where RowNumber BETWEEN 1 and 5 将会返回table表 其中有一列名字为 RowNu
随机推荐
- Dojo 学习笔记入门篇 First Dojo Example
- using Net::SSH2 shell 的二个方法
- jQuery焦点控制图层展示延迟隐藏的方法
- 金山反病毒20041226_日报
- Android APP之WebView校验SSL证书的方法
- asp.net mvc验证码类使用
- MySQL性能优化之max_connections配置参数浅析
- js日期相关函数dateAdd,dateDiff,dateFormat等介绍
- 基于nodejs+express4.X实现文件下载的实例代码
- Ajax+asp应用实例 注册模块,表单提交
- 使用shell脚本找出网站的空页面和404错误页面
- SqlServer强制断开数据库已有连接的方法
- IE6/7/8/9不支持exec的简写方式
- js实现杯子倒水问题自动求解程序
- Android编程中延后处理事件的方法小结
- 网络基础带你彻底认识路由器
- Linux目录与文件的权限意义详解
- JS实现520 表白简单代码
- Protostuff序列化和反序列化的使用说明
- Vue使用mixin分发组件的可复用功能