分页的sql语句_自动分页

分页的sql语句_自动分页下文将为您介绍三种SQL分页语句写法,如果您也遇到过类似的问题,不妨一看,相信对您会有所启迪。SQL分页操作是经常会遇到的,下面就将为您介绍三种SQL分页语句,供您参考,希望对您学习SQL分页能够有所帮助。方法一(适用于SQLServer2000/2005)SELECTTOP页大小* FROMtable1 WHEREidNOTIN

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

下文将为您介绍三种SQL分页语句写法,如果您也遇到过类似的问题,不妨一看,相信对您会有所启迪。

SQL分页操作是经常会遇到的,下面就将为您介绍三种SQL分页语句,供您参考,希望对您学习SQL分页能够有所帮助。

方法一(适用于 SQL Server 2000/2005)

SELECT TOP 页大小 *  
FROM table1  
WHERE id NOT IN  
          (  
          SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id  
          )  
 
ORDER BY id  
方法二(适用于 SQL Server 2000/2005)

SELECT TOP 页大小 *  
FROM table1  
WHERE id > 
          (  
          SELECT ISNULL(MAX(id),0)   
          FROM   
                (  
                SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id  
                ) A  
          )  
 
ORDER BY id  
方法三(适用于 SQL Server 2005)

SELECT TOP 页大小 *   
FROM   
        (  
        SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1  
        ) A  
 

WHERE RowNumber > 页大小*(页数-1)   


———————————————————-

 /// <summary>
        /// 将原始SQL语句改造成支持分页的SQL语句
        /// </summary>
        /// <param name=”sql”>原始sql语句</param>
        /// <param name=”page”>第几页</param>
        /// <param name=”pageSize”>每页多少记录</param>
        /// <param name=”primaryField”>原始sql语句主键字段</param>
        /// <returns></returns>
        string GetPageSql(string sql, int page, int pageSize,string primaryField)
        {

            StringBuilder pageSQL = new StringBuilder();
            pageSQL.Append(string.Format (“SELECT TOP {0} *  From “,pageSize ));
            pageSQL.Append(” ( “);
            pageSQL.Append(string.Format (”  SELECT ROW_NUMBER() OVER (ORDER BY {0}) AS RowNumber,* FROM “,primaryField ));
            pageSQL.Append(string.Format(“({0}) tempTable1”, sql));
            pageSQL.Append(” ) tempTable2 “);
            pageSQL.Append(string.Format(” WHERE RowNumber > {0}*({1}-1)  “,pageSize , page));
            return pageSQL.ToString(); 
           
        }


 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179166.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Ubuntu 安装Jdk1.8「建议收藏」

    Ubuntu 安装Jdk1.8「建议收藏」1、下载安装包Oracle官网下载Jdk1.8Linux环境安装包,传送门:Oracle官网Jdk1.8安装包下载地址图示如下:2、环境配置将安装包上传到Ubuntu系统的/usr/local/programs/java/目录下,如果目录不存在,命令如下:$mkdir-p/usr/local/programs/java/解压缩,命令如下:…

    2022年7月14日
    22
  • 优化SQLServer——表和分区索引(二)

    优化SQLServer——表和分区索引(二)

    2021年11月25日
    41
  • 零起点学习Drupal教程[第一章—引言]

    零起点学习Drupal教程[第一章—引言]文章摘自http://www.rzchina.net/forum/6第一章引言1.1什么是drupal?Drupal究竟是什么呢?下面是Drupal官方网站给出的定义:“Drupal软件允许个人或用户社区轻松地发布、管理和组织Web站点上的各种内容。”Drupal是一个免费的、开源的、具有模块化框架使用PHP开发的网站内容管理系统。Drupal允许网站管理员创建和组织网站内容、定制

    2022年6月13日
    27
  • 以太坊私有链搭建_eth节点搭建

    以太坊私有链搭建_eth节点搭建Johnsir亲传不作任何商业用途首先创建三个文件夹分别为三个节点每个文件夹准备好一个存放数据的文件夹然后进入John1cmd进入puppeth后面的直接回车就可以到这步开始导出导出后文件夹多了四个文件主要用到的就是jhgeth.json其他三个可有可无geth–datadir”./jhdata”–networkid112233initjhgeth.json初始化创世块获取到geth…

    2022年10月7日
    4
  • linux基础50——ldd

    linux基础50——ldd1.概念ldd命令用于打印程序或者共享库文件所依赖的共享库列表。注意,ldd本身不是一个二进制程序,而是一个Shell脚本,使用文本编辑器vim可以查看其内容,具体目录可以使用which命令查看:[root@192pthread]#whichldd/usr/bin/ldd我们知道,Linux的动态库装载器ld-linux.so模块会先于executable模块工作,并获得控制权,ld-linux.so会通过系统环境变量的设置,选择只显示可执行模块的d

    2022年6月3日
    46
  • 网络文件共享服务—NFS服务

    网络文件共享服务—NFS服务

    2022年4月3日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号