运用SQL2005以上特有的ROW_NUMBER() 进行分页
2012-06-08 14:26
519 查看
CREATE PROCEDURE [dbo].[ShowPage1]
@tblName varchar(255), -- 表名
@strGetFields varchar(1000), -- 需要返回的列
@strOrder varchar(255), -- 排序的字段名
@PageSize int, -- 页尺寸
@PageIndex int, -- 页码
@strWhere varchar(1500)='' -- 查询条件 (注意: 不要加 where)
AS
declare @strSQL varchar(5000)
if @strWhere !=''
set @strWhere= 'where'+@strWhere
set @strSQL='Select'+@strGetFields+'FROM'+'+(Select ROW_NUMBER() OVER (+'+@strOrder+') AS pos,'+@strGetFields+' FROM ['+@tblName+']'+@strWhere+') AS sp Where pos BETWEEN str(('+@PageIndex+'-1)*'+@PageSize+'+1)
AND str('+@PageIndex+'*'+@PageSize+')'
exec (@strSQL)
@tblName varchar(255), -- 表名
@strGetFields varchar(1000), -- 需要返回的列
@strOrder varchar(255), -- 排序的字段名
@PageSize int, -- 页尺寸
@PageIndex int, -- 页码
@strWhere varchar(1500)='' -- 查询条件 (注意: 不要加 where)
AS
declare @strSQL varchar(5000)
if @strWhere !=''
set @strWhere= 'where'+@strWhere
set @strSQL='Select'+@strGetFields+'FROM'+'+(Select ROW_NUMBER() OVER (+'+@strOrder+') AS pos,'+@strGetFields+' FROM ['+@tblName+']'+@strWhere+') AS sp Where pos BETWEEN str(('+@PageIndex+'-1)*'+@PageSize+'+1)
AND str('+@PageIndex+'*'+@PageSize+')'
exec (@strSQL)
相关文章推荐
- SQL 2005 ROW_NUMBER() 语句分页
- SQL 2005的ROW_NUMBER()实现分页功能
- C#拼接SQL语句,SQL Server 2005+,多行多列大数据量情况下,使用ROW_NUMBER实现的高效分页排序
- SQL2005 Row_Number() 分页问题
- SQL 2005的ROW_NUMBER()实现分页功能
- 利用 row_number 进行对传入SQL语句进行分页
- row_number( )、rank( )、dense_rank( )、ntile( )函数的用法 (SQL2005以上)
- SQL Server 2005下的分页SQL ,row_number是个鸡肋
- SQL2005新函数ROW_NUMBER()实现分页
- SQL 2005 ROW_NUMBER() 语句分页 | SQL效率最高的分页查询数据
- SQL 2005的ROW_NUMBER()实现分页功能(转载)
- 使用SQL Server 2005 新的语法ROW_NUMBER()进行分页的两种不同方式的性能比较
- 用SQL 2005的ROW_NUMBER() 实现分页功能
- SQL2005 新增函数Row_number() 存储过程分页有大用
- Great feature for Sql 2005--Row_number()分页
- SQL2005 分页方法 ROW_NUMBER
- SQL 2005的ROW_NUMBER()实现分页的功能
- 用SQL 2005的ROW_NUMBER() 实现分页功能
- 使用SQL Server 2005 新的语法ROW_NUMBER()进行分页的两种不同方式的性能比较
- 使用SQL Server 2005 新的语法ROW_NUMBER()进行分页的两种不同方式的性能比较