首页 > 数据库 >SQL Server 分页查询语句

SQL Server 分页查询语句

时间:2023-03-07 14:55:05浏览次数:33  
标签:语句 pageindex pagesize declare int Server SQL id select

1.分页查询1:

必须带有主键 ID,且主键ID 是标识列,必须是自增的。

原理:需要拿出数据库的第5页,就是40-50条记录,首先拿出数据库中的前40条记录的 ID 值,然后再拿出剩余部分的前 10 条元素。

declare @pagesize int;
select @pagesize = 5;

declare @pageindex int;
select @pageindex = 3;

select top (@pagrrsize) * from ScoreFoNew2 where id not in
(
  '(10*(2-1))为页大小*当前第几页-1
  select top (@pagesize*(@pageindex-1)) id from ScoreInfoNew2 order by id
)
order by id

2.分页查询2:

原理:先查询前40条记录,然后获得其 ID 值,如果 ID 值为null的,那么就返回0;然后查询 id 值大于前40条记录的最大 id 值的记录。

这个查询有一个条件,就是 id 必须是 int 类型的。

declare @pagesize int;
select @pagesize = 5;

declare @pageindex int;
select @pageindex = 3;

select top (@pagrrsize) * from ScoreFoNew2 where id > 
(
  select isnull(max(id),0) from
  (
    '(10*(2-1))为页大小*当前第几页-1
    select top (@pagesize*(@pageindex-1)) id from ScoreInfoNew2 order by id
  ) A
)

order by id

3.分页查询3:

原理:先把表中的所有数据都按照一个 rowNumber 运行培训,然后查询 rowNumber 大于40的前十条记录,这种方法和 oracle 中的一种分页方式类似,不过只支持 2005 版以上的。

declare @pagesize int;
select @pagesize = 5;

declare @pageindex int;
select @pageindex = 3;

select top (@pagrrsize) * from 
(
  select row_number() over(order by id) as rownumber, * from ScoreInfoNew2
) A
    
'(10*(2-1))为页大小*当前第几页-1
where rownumber > (@pagesize * (@pageindex-1))

分页查询4

要求必须在 SQL server 2012 版本之后方可支持。

declare @pagesize int;
select @pagesize = 5;

declare @pageindex int;
select @pageindex = 3;

select * from ScoreFoNew2 order by id 

offset (@pagesize(@pageindex-1))  '间隔多少条开始

rows fetch next (@pagesize)    '获取多少条

rows only

标签:语句,pageindex,pagesize,declare,int,Server,SQL,id,select
From: https://www.cnblogs.com/counter/p/17188124.html

相关文章

  • 为什么99%的程序员都做不好SQL优化?
    连接层最上层是一些客户端和链接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安......
  • mysql高级
    1.索引优缺点:  优:提高检索效率,降低IO成本。通过索引排序,降低cpu消费。  缺:索引需要占用空间,降低表更新效率   2.索引结构     1)B+Tree:......
  • 为什么99%的程序员都做不好SQL优化?
    连接层最上层是一些客户端和链接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安......
  • 使用Python操作Mysql数据库(进阶)
    #-*-coding:utf-8-*-importloggingimportpymysqlfromrest_framework.responseimportResponselogger=logging.getLogger(__name__)#连接数据库def......
  • mysql执行计划:Explain语句结果中各个字段分表表示什么
    mysql执行计划:Explain语句结果中各个字段分表表示什么列名描述id查询语句中每出现⼀个SELECT关键字,MySQL就会为它分配⼀个唯⼀的id值,某些⼦查询会被优化为join......
  • 如何在windows环境下安装启动mysql实录
    1.下载mysql笔者下载的mysql-8.0.32-winx642.生成.ini配置文件在与bin目录同级下创建my.ini文件内容如下:(笔者的端口创建为3307,通常是3306,可自定义修改)[mysqld]#设置3307端......
  • Java链接mysql
    importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.Statement;publicclassDbcon{//mysql8.0urlconf......
  • MySQL 逻辑备份工具 MyDumper
    1、依赖安装dnfinstall-ycmakegccgcc-c++gitmake2、mydumper下载和安装#下载wgethttps://github.com/mydumper/mydumper/releases/download/v0.14.1-1/my......
  • windows server 安装AppScan
    一、AppScan下载下载链接:https://pan.baidu.com/s/1csUWPiVkwBNhcUES3XzNqQ?pwd=9xdh  二、AppScan安装(1)双击“AppScan_Setup_10.0.0.exe”开始安装   ......
  • SQL 基础(一)
    SQL简介基本简介SQL(StructuredQueryLanguage:结构化查询语言)是用于管理关系数据库管理系统(RDBMS)的一门语言。SQL的范围包括数据插入、查询、更新和删除,数据库模......