出表A中的第31条到40条记录(表A以自动增长的ID做主键,注意ID可能是不连续的
--事先删除了ID 为33的数据

--第一种
select top 10 ID from T where ID not in(select top 30 ID from T ORDER BY ID ASC)ORDER BY ID
例:select top (@pageSize) * from table where id not in (select top ((@pageIndex-1)*@pageSize) id from table order by id ) order by id 
--第二种
SELECT * FROM (select top 10 * FROM( select top 40 * from T order by ID asc)TT order by TT.ID DESC)TTT order by TTT.ID asc
--第三种
select * from T where T.ID in( select top 10 ID FROM(select top 40 ID from T order by T.ID asc)TT order by TT.ID desc) order by ID
--第四种
select * from( select ROW_NUMBER() over(order by ID)TT FROM T)TTT WHERE TTT.TT between 30 and 40
分页存储过程的写法:
create Proc P_LoadPageData
--参数
@pageSize int,
@pageInderx int,
@total int out
as
--代码
select top (@pageSize) * from table where id not in
(
select top ((@pageIndex-1)*@pageSize) id from table order by id
)  order by id 
select total = count('a') from table
select total
--测试存储过程 
declare @total int
exec P_LoadPageData 3,5,@total out
print @total
select @total
//以下是在.net中调中存储过程

public System.Collections.Generic.List<Model.HKSJ_Main> LoadPageData(int pageIndex, int pageSize, out int total)
{
DataSet ds = new DataSet();

SqlParameter totalParameter = new SqlParameter("@total", SqlDbType.Int);
totalParameter.Direction = ParameterDirection.Output;
//DbHelperSQL.RunProcedure()

//如果用了输出参数,那么就用SqlDataAdapter就可以了,用sqlDataReader时候拿不到输出参数的值。
using (SqlConnection conn = new SqlConnection(DbHelperSQL.connectionString))
{
//conn.Open();
using (SqlDataAdapter adapter = new SqlDataAdapter("P_LoadPageData", conn))
{
adapter.SelectCommand.Parameters.Add(new SqlParameter("@pageIndex", pageIndex));
adapter.SelectCommand.Parameters.Add(new SqlParameter("@pageSize", pageSize));

adapter.SelectCommand.CommandType = CommandType.StoredProcedure;

//输出参数的用法
adapter.SelectCommand.Parameters.Add(totalParameter);

adapter.Fill(ds);
}
}
total = (int)totalParameter.Value;//拿到输出参数的值

return this.DataTableToList(ds.Tables[0]);

}

转载于:https://www.cnblogs.com/jiangyunfeng/p/9054302.html

SQLServer数据库分页查询相关推荐

  1. Oracle、MySql、SQLServer 数据库分页查询语句

    (一).** mysql的分页查询** mysql的分页查询是最简单的,借助关键字limit即可实现查询,查询语句通式: /* * sql:可以是单表的查询语句,也可以是多表的联合查询语句* firs ...

  2. Sqlserver 数据库分页查询(三种方式)

    --第一种分页:sqlserver 2000-sqlserver2005 --假设:每页显示5条, 当前页:1  则查询1-5 --不等于前5条的前5条 select top 5 * from  St ...

  3. oracle数据库如何写翻页_ORACLE数据库分页查询/翻页 最佳实践

    ORACLE数据库分页查询/翻页 最佳实践 一.示例数据: Select Count(*) From dba_objects ; ----------------------------------- ...

  4. ORCALE数据库分页查询

    ORCALE数据库分页查询 ORCALE数据库实现分页查询可以使用row_number()函数或者使用rownum 虚列两种方法. 第一种:利用分析函数row_number() 方法 select * ...

  5. Mysql数据库分页查询及优化

    最近遇到个数据库分页查询问题,mysql数据库分页查询默认是升序查询,就是第一页查询的是最先插入的数据,最后一页才是最新插入的数据,弄了个小的数据库表单,记录下我的操作过程,还有优化查询速度的方法. ...

  6. 不同数据库分页查询的实现

    分页查询是数据库查询中经常用到的一项操作,对查询出来的结果进行分页查询可以方便浏览.那么Oracle.SQL Server.MySQL是如何实现查询的呢?本文我们就来介绍这一部分内容. 1. SQL ...

  7. mysql 分页查询web_JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)...

    JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)-1.jpg (40.23 KB, 下载次数: 0) 2018-8-18 13:34 上传 在开发过程中,经常做的一件事,也是最基本的事 ...

  8. 几种常用数据库分页查询

    一.MySQL 1.Mysql的limit用法 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能. SELECT * F ...

  9. 数据库分页查询PageHelper

    如何使用分页插件 1. 引入分页插件 2. 配置拦截器插件 3. 如何在代码中使用 4. MyBatis 和 Spring 集成示例 5. Spring Boot 待定 使用方法 1. 引入分页插件 ...

  10. MySQL 数据库 分页查询/聚合查询

    引言 在本篇博客简单介绍一下分页查询以及聚合查询简单操作. 分页查询 在MySQL中,分页查询一般都是使用limit子句实现,limit子句声明如下: SELECT * FROM table LIMI ...

最新文章

  1. 汽车常识全面介绍 - 车身
  2. lucene源码分析(1)基本要素
  3. 关于excel的join怎么做
  4. linux 目标文件格式,Linux工具 - NM目标文件格式分析
  5. multisim 12.0安装教程
  6. verilog设计UART发送接收及各种错误仿真
  7. [设计模式-行为型]责任链模式(Chain of Responsibility)
  8. 八、高级依赖关系配置
  9. 为什么我们使用volatile关键字? [重复]
  10. 将WebAPI发布到本地服务器与远程服务器
  11. java 学习笔记之AtomicInteger类的使用
  12. 20191121每日一句
  13. vmware中修改虚拟机MAC地址的方法!
  14. SaaS服务和个性化需求,就不能鱼和熊掌兼得吗?
  15. vivado 下载bit报错End of startup status:LOW
  16. 不服!女性为何成为科技领域的“隐形人”?讲讲崛起中的“她”力量
  17. Python 八大数据类型。
  18. 终极版Python打包exe文件,并修改图标,这将是你见过最详细的教程~
  19. MAC软件推荐(Java方向)
  20. 为什么很多人会觉得FPGA难学?

热门文章

  1. 用shell把所有文件名修改为小写
  2. 天津西站,大屏幕程序出错啦
  3. 管理感悟:人才是发现的,不是培养的
  4. vs 执行单个文件,如cpp
  5. 针对计算机网络或者计算,在采用计算机网络的基础上进行计算
  6. js修改mysql数据库数据_Node.js操作mysql数据库增删改查_node.js
  7. python可视化迷宫求解_用python求解迷宫
  8. python3.5安装tensorflow_如何为Python 3.5安装OpenCV,Tensorflow和机器学习框架运行对象检测应用程序...
  9. Edit Control最简单使用
  10. Oracle_为分区表添加新分区