A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© arbtaystpw 黑马帝   /  2011-12-10 17:33  /  1776 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我现在只知道row_number() 分页?但是听说它的效率还不是最高的?请大家指点?

评分

参与人数 1技术分 +1 收起 理由
朱勋 + 1

查看全部评分

2 个回复

倒序浏览
row_number()是sqlserver支持的一个分析函数吧。当然很多时候在分页操作中会使用到。
其实伪列Rownumber能够实现与row_number同样的效果,但其中唯一的区别就是:
rownumber是个伪列,可以在查询中当做一个正常的字段来使用。其比row_number函数优势的地方是:
若是对一个有索引的列进行排序,其能够利用到索引,而row_number却不能,此时rownumber的性能优势将非常明显。
回复 使用道具 举报
我原来听杨中科老师讲课时,记下了这样的一个高效分页SQL语句
select * from
(
select newsId,newsTitle,newsText,newsDate,Row_Number() over(order by newsId) rownum from dbo.news
)t
where t.rownum>@startRowIndex and t.rownum<=@startRowIndex+@maximumRows
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马