分页存储过程 : create proc usp_GetMyPhotos  @pageIndex int,   --当前页码  @pageSize int,   --每页多少条  @pageCount int output  --计算  总共多少页 as  declare @count int --总共多少条  select @count =COUNT(*) from Photos  set @pageCount = CEILING( @count*1.0/@pageSize)  select…
因为ID是int类型,所以ROW_NUMBER() over(order by ID desc ) as RowNumber 想当然的认为是Int类型 实际ROW_NUMBER() over(order by ID desc ) as RowNumber 返回的是Int64类型.…
出自:http://www.2cto.com/database/201307/227103.html Sql Server Row_Number()学习   Row_Number():   row_number()主要是为选出的每一条记录按照一定的排序方式生成一个行序号.   语法: 1 ROW_NUMBER ( ) OVER ( [ PARTITION BY value_expression , ... [ n ] ] order_by_clause ) CREATE TABLE #Test(…
---恢复内容开始--- 自己之前一直是使用的通用的存储过程 ,也是封装好的只要传表名 + 条件 等等 来到新环境 让自己写一个存储过程, 没办法 自己就需要写一个咯 之前写的比较多的是 按 top 来分页 现在公司要求是使用Row_number 当然 后者效率还是高一点 .至于索引什么的 暂时还没有用到 (有什么需求 现学也是可以的)其中也有 with(nolock) 但是会容易造成数据脏读.如果你有用到索引 或者你想看到你的语句查询开销 你可以使用(ctrl+M)键调执行计划.至于你看到这些…
实际测试: 数据库:70万条数据 查询第10000页,每页10条.row_number() 耗时: 2.2秒rownum 耗时:1.3秒 查询第20000页,每页10条.row_number() 耗时: 4.5秒+rownum 耗时:3.8秒+ 网上看到的说,row_number()效率最高看来是没有经过大数据测试的. 本来还寄希望于row_number()分页代码简洁些,效率高些能优化现在系统的!让人失望了! 个人分析:新的分页方法(row_number() over(order by t.x…
  SQL分页语句 一.比较万能的分页: sql代码: 1 2 3 select top 每页显示的记录数 * from topic where id not in  (select top (当前的页数-1)×每页显示的记录数 id from topic order by id desc)  order by id desc 需要注意的是在access中不能是top 0,所以如果数据只有一页的话就得做判断了.. 二.SQL2005中的分页代码: sql代码: 1 2 3 4 5 6 --讲查询…
Asp.Net分页存储过程 SQL分页语句 一.比较万能的分页: sql代码: 1 2 3 select top 每页显示的记录数 * from topic where id not in  (select top (当前的页数-1)×每页显示的记录数 id from topic order by id desc)  order by id desc 需要注意的是在access中不能是top 0,所以如果数据只有一页的话就得做判断了.. 二.SQL2005中的分页代码: sql代码: 1 2 3…
SQL Server分页语句ROW_NUMBER,读取第4页数据,每页10条 SELECT Id,[Title],[Content],[Image] FROM ( SELECT ROW_NUMBER() OVER(ORDER BY [Id] DESC) AS ROW_NUM,Id,[Title],[Content],[Image] FROM [NewsInfo] )AS TEMP WHERE TEMP.ROW_NUM BETWEEN 31 AND 40…
创建存储过程: CREATE PROCEDURE [dbo].[sp_TBTest_Query] ( @PageSize INT, --每页多少条记录 @PageIndex INT = 1, --指定当前为第几页 @PageCount INT OUTPUT, --返回总页数 @RecordCount INT OUTPUT, --记录总和 @OrderField VARCHAR(5000), --排序字段(多字段,不含Order By) @strWhere VARCHAR(5000), --条件语…
1. 定义 简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY [列名]DESC) 是先把[列名]降序排列,再为降序以后的每条[列名]记录返回一个降序序号,序号从1开始,依次往下排. 排名函数 "ROW_NUMBER" 必须有 ORDER BY 子句.   2.简单示例 表的结构: 用排名函数进行查询: select * ,ROW_NUMBER() OVER(ORDER BY distId desc) a…