`

MS-SQL分页语句

阅读更多

MS-SQL分页语句

有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标。本人不喜欢使用游标,我觉得它耗资、效率低;使用存储过程是个不错的选择,因为存储过程是经过预编译的,执行效率高,也更灵活。先看看单条 SQL 语句的分页 SQL 吧。

方法1:
适用于 SQL Server 2000/2005

SELECT TOP 页大小 *
FROM table1
WHERE id NOT IN
          (
          SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
          )
ORDER BY id

 

方法2:
适用于 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

 

方法3:
适用于 SQL Server 2005

SELECT TOP 页大小 * 
FROM 
        (
        SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1
        ) A
WHERE RowNumber > 页大小*(页数-1)

 

说明,页大小:每页的行数;页数:第几页。使用时,请把“页大小”和“页大小*(页数-1)”替换成数字。

 

  

其它的方案:如果没有主键,可以用临时表,也可以用方案三做,但是效率会低。
建议优化的时候,加上主键和索引,查询效率会提高。

通过SQL 查询分析器,显示比较:我的结论是:
分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句
分页方案一:(利用Not In和SELECT TOP分页)   效率次之,需要拼接SQL语句
分页方案三:(利用SQL的游标存储过程分页)    效率最差,但是最为通用

 

分享到:
评论

相关推荐

    Informix SQL语句查询器

    在"Informix SQL语句查询器"中,分页显示功能是一个关键特性。在处理大量数据时,一次性加载所有结果可能导致页面响应慢,用户体验下降。分页可以将数据分成小块,每次只加载一部分,从而提高页面加载速度并节省...

    Informix SQL语句查询器(v1.0)

    Informix SQL语句查询器支持结果的分页显示,允许用户设定每页显示的数据量,既能保持界面的流畅性,又能满足查看大量数据的需求。这对于网页应用或者需要实时更新数据的系统来说尤为重要。 再者,查询器的界面设计...

    标准SQLServer分页存储过程

    1. `@strSql`: SQL语句字符串,用于指定要进行分页的数据源。 2. `@nPageSize`: 每页显示的记录数量。 3. `@nPageCount`: 当前请求的页数。 4. `@nRowCount`: 输出参数,返回满足条件的总记录数。 #### 参数详解 -...

    XML DB Query 简体中文版

    可以访问MS-SQL Server、Oracle及Access数据库,对于MS-SQL Server及Oracle可以一次执行多条SQL语句及存储过程 ?●?提供一个命令窗口,可以执行全部或选中的语句,可以将这些SQL语句保存到查询文件或从查询文件中...

    SQL SERVER 数据库实用SQL语句

    本文总结了 SQL SERVER 数据库中的一些实用 SQL 语句,涵盖了排序、分页、获取当前数据库信息、查询某一个表的字段和数据类型、事务处理、全文匹配查询、计算执行 SQL 语句查询时间等方面。 一、排序 在 SQL ...

    MS SQL全系列教程

    【MS SQL全系列教程】 本教程全面覆盖了Microsoft SQL Server(简称MS SQL)的各种核心概念和技术,旨在帮助学习者从入门到精通,掌握数据库管理和开发的必备技能。SQL(Structured Query Language)是用于管理和...

    java笔记\Oracle里sql不能用limit的处理

    在MS SQL中,我们可以使用Top-N查询来实现分页查询。但是,在Oracle中,我们不能直接使用Top-N查询。我们可以使用Subquery来实现Top-N查询。 例如,以下SQL语句可以查询表TableA的第101-200条记录: ```sql SELECT...

    php mssql 数据库分页SQL语句

    #### 一、MS SQL 分页语句详解 在MS SQL中,实现分页可以通过嵌套查询的方式完成。以下是一种常见的分页SQL语句: ```sql SELECT * FROM ( SELECT Top N * FROM ( SELECT Top (M + N - 1) * FROM 表名称 ...

    数据库基本概念 ,常用数据库,sql server数据库,Access数据库,sql语句,数据库连接,数据库分页显示

    综上所述,了解数据库的基本概念、常用的数据库类型及其数据类型、SQL 语言基础以及如何在 ASP 中实现数据库连接和分页显示是非常重要的。这些知识点不仅有助于理解数据库管理系统的构建原理,还能帮助开发者更好地...

    根据sql语句生成rdlc报表,字段宽度自适应

    本话题聚焦于如何根据SQL语句生成RDLC报表,并实现字段宽度的自适应功能。 首先,让我们深入理解RDLC报表的生成过程。RDLC报表是在Visual Studio中通过Report Designer创建的,它允许开发者在设计时预览报表布局,...

    通用的mssql数据查询分页的语句

    直接复制到新建查询里面创建,使用的时候注意里面的参数

    浅谈mssql access数据库 top分页方法

    但是有利也有弊,它要求排序字段必须构成唯一记录,且select后的字段.../// <summary>/// 构造分页后的sql语句/// </summary>public static class paginghelper{ ///  /// 获取分页sql语句,排序字段需要构成唯一记录

    SQL Server 2005,SQL Server 2000,MS Access和MySQL中的分页记录

    本文将深入探讨在SQL Server 2005、SQL Server 2000、MS Access和MySQL这四种流行的数据库管理系统中实现分页记录的方法。分页是一种有效的数据呈现方式,它允许用户以更有序和可控的方式浏览大量数据,特别是在Web...

    海量数据库的查询优化及分页算法方案

    以下我们将探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页。 首先,我们需要了解海量数据库的概念。海量数据库是指拥有庞大数量的数据记录的数据库,通常超过100万条记录。这种...

    Mybatis拦截器介绍及分页插件示例

    假设我们想要实现一个基于`Executor`的分页拦截器,可以在`intercept`方法中修改SQL语句来添加分页条件。为了简化演示,我们将只关注SQL语句的修改部分。 1. **定义拦截器类** ```java public class ...

    sql-view:重写使用otions对象嵌入过滤器,排序,分组或分页的select语句

    重写使用otions对象嵌入过滤器,订单,组或分页的select语句。 对于MS Sql Server和postgres 安装 $ npm install --save sql-view 用法 var sqlView = require ( 'sql-view' ) ( 'postgres' ) ; // build(view, ...

    mybatis分页源码

    3. **参数绑定**:MyBatis 在执行 SQL 时,会将 RowBounds 或 PageHelper 的参数绑定到 SQL 语句中,实现分页效果。 总结来说,MyBatis 的分页实现主要依赖于 RowBounds 对象和第三方插件 PageHelper。RowBounds ...

    sqlserver分页查询处理方法小结

    分页查询的一个常见技巧是通过程序动态构建SQL语句,如上文提到的通过添加`ROW_NUMBER()`并依据行号进行筛选的方法。这种方法可以减少数据库的负担,因为只需要一次查询,但需要编写更复杂的代码。 总的来说,SQL ...

Global site tag (gtag.js) - Google Analytics