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

1、

1 select *
2  from ssp_soi
3  where ssp_soi_id in (
4 select ssp_soi_id
5 from (
6 select ssp_soi_id,
7 ROW_NUMBER() OVER(ORDER BY ssp_soi_id) as nid
8 from ssp_soi
9 ) as tid
10 where nid between 21 and 50
11 )

2、

1 SELECT *
2  FROM (
3 select *,ROW_NUMBER() Over(order by ssp_soi_id) as rowNum
4 from ssp_soi )
5  as myTable
6  where rowNum between 21 and 50

3、

1 WITH OrderedOrders AS
2 (SELECT *,
3 ROW_NUMBER() OVER (order by ssp_soi_id)as RowNumber
4  FROM ssp_soi )
5  SELECT *
6  FROM OrderedOrders
7  WHERE RowNumber between 21 and 50
 而在ORACLE中的分页语句也类似

1、

1 SELECT * FROM
2 (
3 SELECT A.*, ROWNUM RN
4 FROM (SELECT * FROM s_command) A
5 WHERE ROWNUM <= 10
6 )
7  WHERE RN >= 1
 

2、

1 SELECT * FROM
2 (
3 SELECT A.*, ROWNUM RN
4 FROM (SELECT * FROM s_command) A
5 )
6  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 字段  ),如下:

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


MySQL则比较简单

1、

1 SELECT * FROM bus_register LIMIT 1, 5

转载于:https://www.cnblogs.com/Jason_zhu/archive/2010/04/09/1708279.html

SQL Server 2005 分页SQL相关推荐

  1. Sql Server 2005 分页

    摘要:Sql Server 分页查询sql! Sql Server 2005分页查询数据,适用于手机端和服务器端交互 一:Dao代码: /*** 分页查询研讯分类下的新闻列表*/@Overridepu ...

  2. 你应该升级到SQL Server 2005还是SQL Server 2008?

    虽然SQL Server2005已经推出了约3年了,奇怪的是,很多公司仍然没有将SQL Server2000升级.现在这些公司面临着再次作出决定--是跳过升级到SQL Server 2005 还是直接 ...

  3. SQL Sever 各版本下载 SQL Server 2012下载SQL Server 2008下载SQL Server 2005 下载SQL Server 2000 下载...

    SQL Server 2016简体中文企业版 文件名:cn_sql_server_2016_enterprise 64位下载地址:ed2k://|file|cn_sql_server_2016_ent ...

  4. SQL Server 2005与SQL Server 2008 的区别

    随时随地管理您的数据 SQL Server 2008 在 Microsoft 的数据平台上发布,帮助您的组织随时随地管理任何数据.它可以将结构化.半结构化和非结构化文档的数据(例如图像和音乐)直接存储 ...

  5. SQL Server 常用分页SQL

    今天无聊和朋友讨论分页,发现网上好多都是错的.网上经常查到的那个Top Not in 或者Max 大部分都不实用,很多都忽略了Order和性能问题.为此上网查了查,顺带把2000和2012版本的也补上 ...

  6. 数据库 ACCESS与SQL SERVER 2000分页SQL语句 分析

    原SQL语句:SELECT TOP 10 * FROM [Order] WHERE [ID] NOT IN(SELECT TOP 6000 [ID] FROM [Order] ORDER BY [ID ...

  7. sql server 2005分页存储过程和sql server 2000分页存储过程(摘)

    USE [svnhost] GO /****** 对象:  StoredProcedure [dbo].[up_Page2005]    脚本日期: 05/21/2008 11:27:05 ***** ...

  8. 走进SQL Server 2005:备份与恢复功能

    每当有任何新的软件发布的时候,你通常都会发现一些你从来不知道或者从来不知道你需要的新的特性.SQL Server 2000中存在的许多的备份和恢复特性都同样保留在了SQL Server 2005中,但 ...

  9. SQL Server 2005——下一代的数据管理和分析软件[转]

    XXXX(不知道为什么CnBlogs上的人这么抵制XXXX,呵呵--)上推出了"体验SQL Server 2005"活动,当然啦,一些关于SQL Server 2005的文章被翻译 ...

  10. 建立Microsoft SQL Server 2005数据仓库

    建立Microsoft SQL Server 2005数据仓库 这几天用了一下Microsoft SQL Server 2005的分析服务,贴出来给大家分享一下. 请多多指正.谢谢. 一.需求: 建立 ...

最新文章

  1. 【ACM】杭电OJ 2037
  2. Mysql的日志那些事
  3. 项目材料用到的词组积累
  4. CentOS系统启动流程
  5. 计算圆弧与矩形相交_GIS算法:3_拓扑空间关系计算模型DE-9IM
  6. C# 操作自定义config文件
  7. 前端div里的内容下沉_自学Web前端的五个不同阶段,从浅入深
  8. 【转】C# 操作系统防火墙
  9. 以下可以作为c语言合法变量名的是,2016年河南科技学院信息工程学院C语言上机编程复试笔试最后押题五套卷...
  10. 后端:死磕18个Java8日期处理,工作必用!
  11. Android版本演进中的兼容性问题
  12. 僵化封闭是世界的新主流?
  13. bom头mysql_BOM信息头详解
  14. android 添加蒙版实现护眼模式(夜间模式)
  15. python中add函数_add_argument函数的dest参数
  16. 没有钱没技术没学历应该怎么去创业?
  17. Basic grammar of Python day2
  18. Write Combining Buffer
  19. BUPT计导第三次机考12.8数组+二分答案详解
  20. Python复盘股票_3. 超短的复盘框架

热门文章

  1. 如何使用Mac DVDRipper Pro在mac上备份包括菜单和附加功能在内的完整的DVD
  2. 通过EPPlus导出Excel文件
  3. Eclipse中的快捷键……希望朋友们能熟练使用
  4. 理解EMM:是更好地管理移动性的关键所在
  5. 自己写的一个ffmpeg时间戳分析工具
  6. jQuery对象复制
  7. ERP开发分享 1 数据库表设计
  8. 如何关闭dell inspiron n4010的内置麦克
  9. java.io读写文本
  10. mysql安装手册(2)