`
coolsooner
  • 浏览: 1313310 次
文章分类
社区版块
存档分类
最新评论

SQL ROW_NUMBER() VS TOP

 
阅读更多

ROW_NUMBER() 的SQL语句:

select * from (
select ID , ArchivesTypeID,SegmentColumnName,SegmentDisplayText,SegmentOrderID,

SegmentSeparator,ROW_NUMBER() over(order by ID desc ) as RowNum from MytestTable ) table1
where RowNum between 1700000 and 1710040

TOP 的SQL语句

WITH temp AS (select ID , ArchivesTypeID,SegmentColumnName,SegmentDisplayText,

SegmentOrderID,SegmentSeparator from MytestTable )
select top 10040 * from temp where id>(
select max(id) from (select top 1700000 ID from temp order by id)table2
) order by ID

记录的总条数 select COUNT(*) from MytestTable 共2399998

ROW_NUMBER()用时2秒

TOP用时0秒

分享到:
评论

相关推荐

    SQLSERVER分页查询关于使用Top方式和row_number()解析函数的不同

    主要介绍了SQLSERVER分页查询关于使用Top方式和row_number()解析函数的不同的相关资料,需要的朋友可以参考下

    sqlserver巧用row_number和partition by分组取top数据

    SQL Server 2005后之后,引入了row_number()函数,row_number()函数的分组排序功能使这种操作变得非常简单

    解析数据库分页的两种方法对比(row_number()over()和top的对比)

    本篇文章是对数据库分页的两种方法对比(row_number()over()和top的对比)进行了详细的分析介绍,需要的朋友参考下

    SQL中Group分组获取Top N方法实现可首选row_number

    统计每个城市的最新10个产品本文采用了游标方法/Count查询/cross apply方法/row_number方法等等对比不难发现Group获取Top N场景时,可以首选row_number,游标cursor其次,另外两个就基本不考虑了

    SQL2005 ROW_NUMER实现分页的两种常用方式

    代码如下:declare @PageNumber int declare @PageSize int set @PageNumber=2 set @PageSize=20 –利用between select * from ( select row_number() over (order by source_ip,id) as row_num, * from tb) as page_...

    sqlserver与myqsql区别

    MS SQL不支持limit语句,是非常遗憾的,只能用top 取代limt 0,N,row_number() over()函数取代limit N,M

    分页存储过程整理(三种方法)

    分页存储过程整理: 1.拼字符串 2.SQL2005 TOP (表达式) 新功能 3.通过SQL2005 ROW_NUMBER 使用,易用。

    Jpa 原生SQL分页查询“一个别名引发的一场血案”

    问题描述: 备注:刚开始SQL 没有加任何AS ... WITH query AS (SELECT inner_query.*, ROW_NUMBER() OVER (ORDER BY CURRENT_TIMESTAMP) as __hibernate_row_nr__ FROM 第二页 明显不一样的处理逻辑 select med.* fro

    ora分析脚本

    using sql_id along with child number instead of hash value # ora webplan aca4xvmz0rzup/3 1 - hash_to_sqlid <sql_id> : get the sql_id of the cursor given its hash value - sqlid_to_hash <sql_id>: ...

    SQL server分页的4种方法示例(很全面)

    这篇博客讲的是SQL server的分页方法,用的SQL server 2012版本。下面都用pageIndex表示页数,pageSize表示一页包含的记录。并且下面涉及到具体例子的,设定查询第2页,每页含10条记录。...利用row_number关键字,offse

    分页存储过程(二)在sqlserver中返回更加准确的分页结果

    在我的使用SQL Server2005的新函数构造分页存储过程中,我提到了使用ROW_NUMBER()函数来代替top实现分页存储过程。 但是时间长了,又发现了新问题,就是主子表的分页查询。例如:订单表和订单明细表,要求是查询订单...

    SQL分页查询方式汇总

    需求:查询表dbo.Message,每页...2:BETWEEN * AND * , Row_Number() OVER(ORDER BY *) AS rowNum SELECT *,ROW_NUMBER() OVER(ORDER BY Code) AS rowNum INTO #a FROM dbo.Message SELECT * FROM #a WHERE rowNum BE

    二种sql分页查询语句分享

    代码如下://第一种:select * from (select ROW_NUMBER() over(order by Id asc) as num,* from UserInfo)as u where u.num between 10*(4-1)+1 and 10*4//第二种:select top 10 * from UserInfo where Id ...

    Oracle开发之分析函数(Top/Bottom N、First/Last、NTile)

    在前面《Oracle开发之分析函数(Rank、Dense_rank、row_number)》一文中,我们已经知道了如何为一批记录进行全排列、分组排列。假如被排列的数据中含有空值呢? 代码如下:SQL> select region_id, customer_id,  ...

    SQL2005 高效分页sql语句

    1、 代码如下: select top 10 * from ( select top (@Page * 10) ROW_NUMBER() OVER (order by id) as RowNum, id, username from Guest where username = ‘user’ ) as T where RowNum > ((@Page – 1) * 10) 2、 ...

    sql2005全文检索.doc

    ' ROW_NUMBER() OVER (ORDER BY RANK DESC) AS SerialNumber ,'+ ' F.[rank], '+ ' p.*' + ' FROM'+ ' FREETEXTTABLE( CapitalInfoFactTab , (ProvinceName, CityName,  CountyName, Keyword,Title ,IndustryBName ...

    sqlserver分页查询处理方法小结

    sqlserver2008不支持关键字limit ,所以它的分页sql查询语句将不能用MySQL的方式进行,幸好sqlserver2008提供了top,rownumber等关键字,这样就能通过这几个关键字实现分页。 下面是本人在网上查阅到的几种查询脚本...

Global site tag (gtag.js) - Google Analytics