`

优化的ms sql server分页sql语句

阅读更多
特点:一次查询,数据库只返回一页的数据。而不是取出所有的数据。
说明:

pagesize: 每页显示记录数
cureentpage:当前页数

select * from (   select TOP pagesize * FROM ( SELECT TOP pagesize*cureentpage   * from user_table   ORDER BY id ASC ) as aSysTable   ORDER BY id DESC ) as bSysTable   ORDER BY id ASC


例子说明:

假如数据库表如下:

user_table:

id:主键,自增
username:字符
password:字符

假设有80条记录,每页显示10条记录,id 从1到80


现在按照id升序排列取出第三页的数据应该为:所取得记录的id 应该为 21到30。

这时该语句应该为:

select * from (   select TOP 10 * FROM ( SELECT TOP 30   * from user_table   ORDER BY id ASC ) as aSysTable   ORDER BY id DESC ) as bSysTable   ORDER BY id ASC

原理如下:

先按照id从小到大升序取出30条记录(3*10),也就是:id 在 1-30 之间的记录 (SELECT TOP 30   * from user_table   ORDER BY id ASC)

然后按照ID降序排列这30条记录,得到记录为id 在:从30到 1 

然后在这些30条记录中取出前10条记录:取得的记录为:id 在30-21之间。这就是我们需要的数据,但这时是按照降序排列的,不符合要求。

最后在重新排序得到最终我们需要的数据。id在21-30之间。


希望对大家有所帮助。

如有问题,希望和大家一块交流。

分享到:
评论

相关推荐

    sqlserver分页查询语句

    sqlserver分页查询语句;sqlserver分页查询语句;sqlserver分页查询语句;

    SqlServer数据库中的分页语句

    本篇将深入探讨SQL Server实现分页查询的语句及其工作原理。 首先,我们要明白SQL Server分页查询的基本思想:一次查询只返回所需页面的数据,而不是一次性获取所有数据,这样可以减少网络传输量,减轻服务器压力,...

    标准SQLServer分页存储过程

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

    sql server 2008通用分页

    SQL server2008中通用分页存储过程,表名,每页长度,页码都是动态赋值。

    SQLServer分页.rar

    本资源"SQLServer分页.rar"包含了一个名为"SQL分页.txt"的文件,里面详细讲解了SQL Server中的分页实现方法。 首先,我们来理解SQL Server分页的基本概念。分页通常涉及到两个关键参数:`OFFSET`和`FETCH NEXT`。`...

    在SQL Server中通过SQL语句实现分页查询

    ### 在SQL Server中通过SQL语句实现分页查询 #### 一、背景介绍 在数据库应用开发中,分页查询是一种常见的技术手段,用于改善用户体验并提高系统性能。特别是当数据量庞大时,一次性加载所有数据到前端不仅会导致...

    jsp+sqlserver分页

    这通常涉及到`PreparedStatement`的使用,以防止SQL注入,并且在SQL语句中设置页码和每页大小。 **4. JSP页面展示** JSP(JavaServer Pages)用于生成动态网页。在分页功能中,JSP页面需要显示查询结果,并提供...

    java 连接sqlserver数据库查询,并分页显示

    本篇文章将详细讲解如何使用Java连接SQL Server数据库,执行查询语句以及实现分页显示。 首先,我们需要在Java项目中引入JDBC驱动,这是连接SQL Server数据库的基础。SQL Server的JDBC驱动通常为`mssql-jdbc`,可以...

    sql server 分页大全

    本篇文章将深入探讨SQL Server 2000中的分页方法,包括存储过程、TSQL语句以及相关的分页语法。 一、分页存储过程 在SQL Server 2000中,可以创建存储过程来实现分页。存储过程是预编译的SQL代码集合,它们可以...

    jsp+sql server分页技术

    2. **构造SQL查询**:根据获取的参数,构建带有`ROW_NUMBER()`的分页SQL。 3. **执行SQL**:使用JDBC连接到SQL Server数据库,执行查询语句。 4. **处理结果**:将查询结果存储在集合中,如ArrayList或ResultSet。 5...

    关于SQL Server SQL语句查询分页数据的解决方案

    关于SQL Server SQL语句查询分页数据的解决方案 在日常工作中,我们经常需要处理大量数据,并从中获取特定页面的数据。特别是在Web应用开发中,为了提高用户体验,通常会将数据进行分页显示。针对这一需求,本文将...

    EXT JSON Sqlserver 分页 全部正常运行

    在这个示例中,SQL Server用于存储数据并响应来自EXT JS应用的分页请求,可能涉及到SQL的SELECT语句,带有OFFSET和FETCH子句来实现分页查询。 4. JSP与JavaBean:JSP(JavaServer Pages)是一种动态网页技术,允许...

    sqlserver分页器

    简易的sqlserver分页功能,只需要将页码传入即可...3、传入mybitis中 在sql语句头部调用 ${pading.begin} 结尾调用 ${pading.end}即可实现分页 4、默认每页10条 若需要更改 则修改该类源码中 的成员变量即可(有注释)

    sqlserver+group by分组查询分页存储过程

    3. **执行分页查询**:使用动态生成的SQL语句执行查询,并通过设置`ROWCOUNT`来限制返回的结果集大小。 ### 综合运用`GROUP BY`、存储过程和分页技术 在给定的存储过程中,`GROUP BY`子句与分页查询的结合使用提供...

    java语言的分页查询功能(mysql和sql server)

    通过`Statement`或`PreparedStatement`对象执行SQL语句,并使用`ResultSet`对象获取结果。 2. 分页查询SQL构造:对于MySQL,分页查询SQL可能如下: ```sql SELECT * FROM table LIMIT offset, limit; ``` 对于...

    sqlserver 实现分页的前台代码 以及后台的sqlserver语句

    在Java中,我们需要获取前端传来的页码和每页大小,然后构造上述SQL语句并执行: ```java @PostMapping("getData") public Map, Object> getData(@RequestParam int page, @RequestParam int pageSize) { String ...

    最简单的SQL Server数据库存储过程分页

    本文介绍一种简单且高效的SQL Server存储过程实现分页的方法,这种方法仅需提供SQL语句、每页的记录数以及当前页数即可快速完成分页操作。 #### SQL Server存储过程分页原理 在SQL Server中,通过存储过程实现分页...

    sqlserver 分页存储过程

    - 最后,根据当前页码和分页设置构造并执行SQL语句,查询并返回指定页的数据。SQL语句包含`SELECT TOP @TopN`、`@FieldShow`、`@tbname`、`@WhereString`和`@FieldOrder`等元素,确保返回正确的数据。 这个存储...

    mysql,oracle,sqlserver分页

    - 可以通过内层查询来优化上述SQL语句,以确保查询到的数据符合要求。 - **示例**: ```sql SELECT b.* FROM ( SELECT ROWNUM AS rowno, a.* FROM ( SELECT * FROM emp WHERE sal > 800 ORDER BY sal ) a...

Global site tag (gtag.js) - Google Analytics