惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
小众软件
小众软件
爱范儿
爱范儿
Y
Y Combinator Blog
博客园 - Franky
美团技术团队
博客园 - 【当耐特】
The Cloudflare Blog
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
Jina AI
Jina AI
IT之家
IT之家
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
大猫的无限游戏
大猫的无限游戏
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 聂微东
WordPress大学
WordPress大学
V
Visual Studio Blog
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
有赞技术团队
有赞技术团队

博客园 - Dr.Wang

mongoDB操作命令,摘自官方helper 让PDF文件也支持书签功能 编码简介 [转]C# 的readonly和const区别 [转]截获asp.net http输出流自己做处理 [转]DES加密 java与.net可以相互加密解密两种方法 [转]JAVA与.NET DES加密解密 Ext树控件的制作 [转]SqlServer行列倒置示例 [转]url传递中文的解决方案总结 - Dr.Wang - 博客园 [转]正则表达式基础知识 - Dr.Wang - 博客园 [转]揭开正则表达式的神秘面纱 [转]正则表达式30分钟入门教程 [转]大流量、高并发网站验证码解决方案 [转]通用分页存储过程 匿名方法解决多线程访问控件的问题 - Dr.Wang - 博客园 [转载]C#自定义事件的步骤介绍 [转载]UDP数据包穿透NAT [转载]UDP数据包大小问题
[转]sqlserver2005分页查询
Dr.Wang · 2010-09-10 · via 博客园 - Dr.Wang

原帖:http://blog.csdn.net/tegwy/archive/2009/05/20/4204448.aspx

最近个项目需要用到SQL SERVER 2005的数据库,曾记得以前用2000的时候分页程序的SQL语句一直是个问题,不是效率不高就是难以理解。这次在网上查找资料的时候发现SQL SERVER 2005分页时的语句已经大有改变,先看语句:

  1. WITH Article_CTE AS (  
  2.     SELECT *, ROW_NUMBER() OVER (ORDER BY [ArticleId]) AS RowNumber FROM n_Article  
  3. )  
  4. SELECT * FROM Article_CTE  
  5. WHERE RowNumber BETWEEN 0 AND 10  

在SQL SERVER 2005中新引入了ROW_NUMBER()函数,配合后面的OVER按某字段进行排序然后再通过设置其范围来达到分页查询的目的,这样与Oracle中根据rownum字段进行分页查询便大同小异了。

首页用WITH创建个临时命名的结果集(这些结果集称为公用表表达式 (CTE)),对表中的每行先排序再设置其RowNumber数据,然后通过select查询,通过where设置查询条件来到达分页的目的。貌似在这过程中还是对表进行了全部查询,如果排序的字段很大很长的话也会很慢的,感觉还是没有Oracle的rownum效率高