`
Jason_zhu
  • 浏览: 21197 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQL Server 2005 分页SQL

阅读更多

    使用SQL Server 2005的T-SQL在服务器端进行分页是用到的SQL语句。

1、

select *
from ssp_soi
where ssp_soi_id in (
	select ssp_soi_id
	from (
		select ssp_soi_id,
		ROW_NUMBER() OVER(ORDER BY ssp_soi_id) as nid
		from ssp_soi
	) as tid
	where nid between 21 and 50
)
 

2、

SELECT *
FROM (
    select *,ROW_NUMBER() Over(order by ssp_soi_id) as rowNum 
    from ssp_soi ) 
as myTable
where rowNum between 21 and 50

 

3、

WITH OrderedOrders AS
(SELECT *,
	ROW_NUMBER() OVER (order by ssp_soi_id)as RowNumber
FROM ssp_soi )
SELECT *
FROM OrderedOrders
WHERE RowNumber between 21 and 50
 

     而在ORACLE中的分页语句也类似

1、

SELECT * FROM
(
    SELECT A.*, ROWNUM RN
    FROM (SELECT * FROM s_command) A
    WHERE ROWNUM <= 10
)
WHERE RN >= 1

 

2、

SELECT * FROM
(
    SELECT A.*, ROWNUM RN
    FROM (SELECT * FROM s_command) A
)
WHERE RN BETWEEN 1 AND 10

而按效率来考虑,上述的第一种方法的效率要比第二种高很多。

这是由于CBO优化模式下,Oracle可以将外层的查询条件推 到内层查询中,以提高内层查询的执行效率。对于第一个查询语句,第二层的查询条件WHERE ROWNUM <= 40就可以被Oracle推入到内层查询中,这样Oracle查询的结果一旦超过了ROWNUM限制条件,就终止查询将结果返回了。

而第二个查询语句,由于查询条件BETWEEN 21 AND 40是存在于查询的第三层,而Oracle无法将第三层的查询条件推到最内层(即使推到最内层也没有意义,因为最内层查询不知道RN代表什么)。因此,对 于第二个查询语句,Oracle最内层返回给中间层的是所有满足条件的数据,而中间层返回给最外层的也是所有数据。数据的过滤在最外层完成,显然这个效率 要比第一个查询低得多。

 

同时,Oracle也支持ROW_NUMBER() OVER (partition by 字段 order by 字段 ),如下:

WITH TMS_e_user AS (
SELECT ROW_NUMBER() over (ORDER BY euse_id) ROWNO, e_user.* FROM e_user WHERE 1=1) 
SELECT * FROM TMS_e_user WHERE ROWNO BETWEEN 1 AND 5
 

 

MySQL则比较简单

1、

SELECT * FROM bus_register LIMIT 1, 5
 

 

 

分享到:
评论

相关推荐

    sql Server 通用分页存储过程

    sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程

    SQL Server2005分页查询

    在SQL Server 2005中,分页查询是一个常见的需求,特别是在处理大量数据时,为了提高用户体验,通常需要一次性加载一定数量的数据,而不是一次性显示所有数据。以下将详细讲解SQL Server 2005中分页查询的常用方法。...

    sqlserver2005分页函数

    一个非常好的sql2005分页函数,简单实用,希望对你有所帮助

    mybatis中进行sqlserver分页

    mybatis中,sqlserver分页

    sql server 2008通用分页

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

    struts+hibernate+sql server2005分页的小项目

    **Struts、Hibernate和SQL Server 2005 分页小项目详解** 在软件开发中,尤其是Web应用,数据分页是一项重要的功能,它能够帮助用户有效地浏览大量数据,提高用户体验。本项目以"Struts+Hibernate+SQL Server 2005...

    Sql Server 通用分页存储过程(适用与 BootStrap Table)

    通用的Sql Server分页程序,并且符合BootStrap Table 的调用标准.

    Microsoft SQL Server 2005技术内幕:存储引擎(中文).pdf

    SQL Server 2005微软官方权威参考书.  公球公认SQL Server 2005 经典著作..  数据库“铁人”、微软MVP胡百敬先生鼎力推荐  微软SQL Server 总部Principal Group 项目经理朱凌志鼎力推荐  本书详细介绍了数据...

    sqlserver分页查询语句

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

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

    String url = "jdbc:sqlserver://localhost:1433;databaseName=myDatabase"; String username = "myUsername"; String password = "myPassword"; try { Class.forName(...

    ASP.NET基于SQLServer的分页

    3. **SQL Server分页查询** - `TOP`子句:在SQL Server中,可以使用`TOP`子句配合`ORDER BY`来实现分页。例如,获取第一页的数据,可以写成`SELECT TOP pageSize * FROM table ORDER BY sortField DESC`。 - `...

    Hibernate+sqlserver2000分页

    综上所述,`Hibernate+sqlserver2000分页`是一个结合了ORM框架和数据库分页策略的技术主题。在实际应用中,开发者需要根据业务需求选择合适的分页方法,并注意性能优化,如避免全表扫描,使用索引来加速查询等。理解...

    vc+sqlserver2005分页模块实现

    本教程将深入探讨如何在VC++(Microsoft Visual C++)环境中,结合SQL Server 2005数据库,实现高效的分页查询功能。这有助于提高用户体验,减少网络负载,同时确保数据的有序、稳定显示。 首先,理解分页的概念。...

    asp+sqlserver2005万能分页存储过程源码

    asp+sqlserver2005万能分页存储过程源码 sqlserver2005源码下载,很灵活的

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

    根据给定的SQL Server存储过程代码片段,我们可以深入解析与SQL Server中的`GROUP BY`分组查询、存储过程以及分页技术相关的知识点。 ### SQL Server中的`GROUP BY`分组查询 `GROUP BY`子句在SQL查询语言中用于将...

    SQL Server 2005分页显示存储过程

    ### SQL Server 2005 分页显示存储过程 #### 背景介绍 在数据库应用开发中,分页查询是非常常见的需求之一。对于大型数据集来说,如果一次性加载所有数据到前端展示,不仅会增加服务器负担,还会影响用户体验。因此...

    SQLServer分页.rar

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

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

    本教程将详细讲解如何在Java中实现不分框架的分页查询,同时涵盖对MySQL和SQL Server数据库的支持。 一、基础知识 1. 分页概念:分页是将大量数据按一定数量分成若干部分,每次只加载一部分到内存中显示,用户可以...

    SqlServer数据库分页

    在SQL Server数据库中,分页是一种常见的数据检索技术,它允许我们从大量数据中按需获取一部分结果,而不是一次性加载所有记录。这在处理大型数据集时尤其有用,可以提高性能,减少网络传输,以及提供更好的用户体验...

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

    在后端,我们需要处理分页请求,生成对应的SQL Server分页查询语句,并返回结果。这里假设使用Java的Servlet或Spring MVC来处理请求。 1. SQL Server分页语句: SQL Server提供了多种方式实现分页,比如`ROW_NUMBER...

Global site tag (gtag.js) - Google Analytics