在Sqlserver数据库中,如果查询表中含有自增长Id列,一般会采用select Top的方式来数据的分页操作.而实际上很多数据表设计的时候,不一定含有自增长Id列,那么数据库没有Id自增列的时候要对数据分页怎么办呢,此时则需要使用ROW_NUMBER()函数来对数据分页,ROW_NUMBER()一般与OVER(order by)一起连用. 使用Row_Number来数据分页的格式如下: With tempTb AS ( Select ROW_NUMBER() OVER(order by 排序…
Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID.YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页查询每页30条,查询第1500页(即第45001-45030条数据),字段ID聚集索引,YEAR无索引,Sqlserver版本:2008R2 第一种方案.最简单.普通的方法: 代码如下: SELECT TOP 30 * FROM ARTICLE WHERE ID NOT IN(SELECT TO…
mysql的分页是基于limit关键字,oracle的分页是基于rownum行号,SQLserver的分页在下面进行研究,是基于SQLServer2012进行的测试. 0.原来的SQL的所有数据 下面的测试假设每页都是取5条数据. 1.第一种-ROW_NUMBER() OVER()方式(over函数必须有) (1)取第一页数据 select * from ( select *, ROW_NUMBER() OVER(Order by ID ) AS RowId from [mydb].[dbo].…
USE [AAA_TYDC] GO /****** Object: StoredProcedure [dbo].[proc_DataPagination] Script Date: 11/20/2014 11:04:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /********************************************************* * 作 用:数据分页 * 作 者:evafly…