/****** Object: StoredProcedure [dbo].[pagination3] Script Date: 2019/1/11 9:02:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[pagination3] --新建存储过程用:CREATE PROCEDURE [dbo].[pagination3]
@tblName varchar(50), --表名
@strGetFields varchar(5000) = '*', --字段名(全部字段为*)
@fldName varchar(5000), --排序字段(必须!支持多字段)
@strWhere varchar(5000) = Null,--条件语句(不用加where)
@pageSize int, --每页多少条记录
@pageIndex int = 1 , --指定当前为第几页
@OrderType bit=0, -- 设置排序类型, 非 0 值则降序
@doCount bit = 0
as
begin
Declare @sql nvarchar(4000)
--计算总记录数
if @doCount != 0
begin
if (@strWhere='' or @strWhere=NULL)
set @sql = 'select count(*) as Total from [' + @tblName + ']'
else
set @sql = 'select count(*) as Total from [' + @tblName + '] where '+@strWhere
end
else
begin
if (@strWhere='' or @strWhere=NULL)
if(@OrderType=1)
set @sql = 'Select * FROM (select ROW_NUMBER() Over(order by ' + @fldName + ' desc) as rowId,' + @strGetFields + ' from ' + @tblName
else
set @sql = 'Select * FROM (select ROW_NUMBER() Over(order by ' + @fldName + ' asc) as rowId,' + @strGetFields + ' from ' + @tblName
else
if(@OrderType=1)
set @sql = 'Select * FROM (select ROW_NUMBER() Over(order by ' + @fldName + ' desc) as rowId,' + @strGetFields + ' from ' + @tblName + ' where ' + @strWhere
else
set @sql = 'Select * FROM (select ROW_NUMBER() Over(order by ' + @fldName + ' asc) as rowId,' + @strGetFields + ' from ' + @tblName + ' where ' + @strWhere
--处理开始点和结束点
Declare @StartRecord int
Declare @EndRecord int
set @StartRecord = (@pageIndex-1)*@PageSize + 1
set @EndRecord = @StartRecord + @pageSize - 1
--继续合成sql语句
if(@OrderType=1)
set @Sql = @Sql + ') as ' + @tblName + ' where rowId between ' + Convert(varchar(50),@StartRecord) + ' and ' + Convert(varchar(50),@EndRecord) + 'order by '+@fldName+' desc'
else
set @Sql = @Sql + ') as ' + @tblName + ' where rowId between ' + Convert(varchar(50),@StartRecord) + ' and ' + Convert(varchar(50),@EndRecord) + 'order by '+@fldName+' asc'
end
end
Exec(@sql)
分享到:
相关推荐
分页存储过程
千万级数据分页查询存储过程SQLServer 有实例
oracle分页查询并返回总记录数据的存储过程
sql 高效分页存储过程 sql 高效分页存储过程 sql 高效分页存储过程 sql 高效分页存储过程 sql 高效分页存储过程
近期项目中用到的分页存储过程,希望对大家有帮助。
分页存储过程 分页存储过程 分页存储过程 sql代码
Oracle的分页查询语句以及Oracle分页的存储过程
sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程
很好地的小例子 可以很好地清楚怎么用sql存储过程实现分页,希望对大家有很好的帮助
高效分页存储过程高效分页存储过程高效分页存储过程高效分页存储过程高效分页存储过程高效分页存储过程高效分页存储过程高效分页存储过程高效分页存储过程高效分页存储过程
非常好用的mysql存储过程,支持大并发,很稳定,绝对原创,你值得拥有!
本文主要分享了SQL分页查询存储过程的具体实例代码,具有一定的参考价值,需要的朋友一起来看下吧
MySql 分页 存储过程 MySql 分页 存储过程 MySql 分页 存储过程
通用的分页存储过程。通用的分页存储过程。通用的分页存储过程
在sybase中实现分页技术的存储过程 procedures
mysql存储过程实现分页 mysql存储过程实现分页 mysql存储过程实现分页 mysql存储过程实现分页
Mysql分页通用存储过程
教你如何在oracle 中创建分页的存储过程
oracle分页存储过程,oracle分页存储过程
sqlserver 支持多表联合查询分页存储过程 sqlserver 支持多表联合查询分页存储过程 sqlserver 支持多表联合查询分页存储过程 sqlserver 支持多表联合查询分页存储过程