出表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. Python剑指offer:分行从上到下打印二叉树
  3. pytorch笔记:Dataloader
  4. Repeater 得到checkbox值
  5. 预编译头超出上限错误 就是include比较多
  6. 删除linux 软raid0,配置Linux软RAID0
  7. 【C/C++开发】C语言实现函数可变参数
  8. MySQL 数据库修改登录密码
  9. Response.Redirect奇怪现象
  10. java 声波 噪音过滤_攻略||让噪音一边去的隔音材料全解析!
  11. iOS App 上架流程-新版本1.0上架
  12. runtime_mysql_users_proxysql的配置系统
  13. redis集群内部的带宽消耗
  14. webharvest-sample-1
  15. MySQL给查询结果添加一表表示行号或名次(1)
  16. navicat12.1.18破解 亲测
  17. 关于Win11家庭版安装Ansys2021R1遇到的问题
  18. 太励志!北大物业小哥六战法考终上岸
  19. 匹配一个字符串的开头和结尾_我如何构建一个应用程序来展示精彩小说的开头和结尾
  20. 农夫过河问题(一个有趣的问题-位运算)

热门文章

  1. 查看dll是32还是64
  2. 百叶窗叶片锋利,不安全
  3. 汉语中的通用量词:个,块
  4. 公司欠薪,一定要书面督促或仲裁后,再离职
  5. Ubuntu16.04+NVIDIA显卡驱动安装步骤
  6. 隋朝之前,扬州指的是现在的南京
  7. 管理感悟:如何改造代码
  8. redirect重定向中可以带参数吗_关于Laravel重定向的七种方法详解
  9. python数据库查询系统_基于Python和MySQL实现的学生信息管理系统
  10. Linux父进程如何发信号给子进程,关于C#:fork和signal:如何将信号从父进程发送到特定的子进程...