首页 > 数据库 >SqlServer实现分页查询

SqlServer实现分页查询

时间:2023-10-30 11:22:18浏览次数:40  
标签:pageIndex 分页 pageSize -- SqlServer 查询 order 主键 select

SqlServer实现分页查询

1.利用max(主键)

-- 分页查询公式-利用max(主键)select top @pageSize *
from 表名where 主键>=
(select max(主键)
from (select top ((@pageIndex-1)*@pageSize+1) 主键
 from 表名
order by  主键 asc) temp_max_ids)order by 主键;

2.利用row_number关键字(适用于SQL Server 2005或更高版本)

这种方式也是比较常用的,直接利用row_number() over(order by id)函数计算出行数,选定相应行数返回即可。

-- 分页查询公式-row_number()select *
from (
-- rownumber是行号别名
select top (@pageIndex*@pageSize) row_number() over(order by 主键 asc)
    as rownumber,*
    from 表名) temp_rows
where rownumber>(@pageIndex-1)*@pageSize;

3.offset /fetch next关键字(适用于SQL Server 2012或更高版本)

-- 分页查询公式-offset /fetch next
select * from 表名order by 主键或其他索引列
-- @pageIndex:页码、@pageSize:每页记录数
offset ((@pageIndex-1)*@pageSize) rows
fetch next @pageSize rows only;

标签:pageIndex,分页,pageSize,--,SqlServer,查询,order,主键,select
From: https://www.cnblogs.com/nuomibaibai/p/17797347.html

相关文章

  • Python中的JSON数据解析和映射--根据value查询key
    importjson#原始JSON数据json_data='''[{"id":1,"name":"MOVE"},{"id":2,"name":"LEFT_DOWN"},{"id":3,"name":"LEFT_UP"},{......
  • Java实现分页的方式有哪些?
    1、手动分页不使用任何框架,用limt分页selectxxfromtab_alimt#{pageNo},#{pageSize}2、RowBounds分页(不推荐)这个是内存分页,它的原理是一次性查出所有数据,然后在内存里进行分页,占内存。3、PageHelper分页(推荐)Mybatis分页插件pom依赖:<dependency><groupId>com.g......
  • es查询script 用法
    在Elasticsearch中,可以使用脚本(Script)来执行自定义的逻辑和计算。脚本可以用于查询、过滤、排序等各种操作。下面是关于脚本使用语法的详细说明,并附上示例说明:脚本语言:Elasticsearch支持多种脚本语言,如Painless、Groovy等。但从Elasticsearch7.0版本开始,默认只支持Painless脚本语......
  • sql多表连接 ,三表连接查询 用户表、角色表、用户角色关系表
    sql多表连接,三表连接查询文章目录一、普通的三表连接查询。二、加入查询条件、排序、分页、字段重命名的三表连接查询。三、疑问解答(大家有疑问可以在评论区留言,笔者一般一日内会回复):一、普通的三表连接查询。用户表、部门表、用户部门关联表selecta.idasuserI......
  • SQL多表联合查询用法介绍
    SQL多表联合查询用法介绍一、联合查询基本概念联合查询,又称为多表查询,是指针对两个或多个表进行查询,并将结果集合并起来展示的过程。在实际应用中,联合查询是很常见的查询方式,因为单张表无法满足复杂的查询需求。二、联合查询的语法联合查询的语法格式如下:SELECTcolumn1,co......
  • SQL连表查询
    SQL连表查询 1内连接(INNERJOIN)   使用比较运算符(包括=、>、<、<>、>=、<=、!>和!<)进行表间的比较操作,查询与连接条件相匹配的数据。根据比较运算符不同,内连接分为等值连接和不等连接两种。123select * from [dbo].[class],student  where [class].id=s......
  • MYSQL内外连接查询实践
    自身连接查询自身连接,就是将表本身和表进行笛卡尔积计算,得到结果,但是由于表名相同,因此要先起一个别名:SELECT*FROM表名别名1,表名别名2自身连接查询的连接对象变成自己和自己了。例如1:student表自身连接查询#自身连接查询,笛卡尔积:81条数据select*fromstudent......
  • 从Mysql架构看一条查询sql的执行过程
    1.通信协议我们的程序或者工具要操作数据库,第一步要做什么事情?跟数据库建立连接。首先,MySQL必须要运行一个服务,监听默认的3306端口。在我们开发系统跟第三方对接的时候,必须要弄清楚的有两件事。第一个就是通信协议,比如我们是用HTTP还是WebService还是TCP?第二个是消息格......
  • 简单统计SQLSERVER用户数据表大小(包括记录总数和空间占用情况)
    在SQLSERVER,简单的组合sp_spaceused和sp_MSforeachtable这两个存储过程,可以方便的统计出用户数据表的大小,包括记录总数和空间占用情况,非常实用,在SqlServer2K和SqlServer2005中都测试通过。/*1.execsp_spaceused'表名'      (SQL统计数据,大量事务操作后可能不准)2.exe......
  • 递归查询
    有时候表结构是层级关系的父子结构,要查出所有有的子,可用如下的sql,递归查询,以mysql为例:1、查出父下所有子WITHRECURSIVEproducttypeAS(SELECT'03f9096d-bd5d-11ed-a58a-7af8c5058daf'FinanClass,id,protypeid,typename,typelevelFROMt_base_commontypeWHEREid='0......