SQL ROW_NUMBER() 通用分页存储过程
--提取分页数据,返回总记录数
Create procedure [dbo].[sp_Common_GetDataPaging_ReturnDataCount]
(
@SqlString varchar(max), --查询语句
@PageNumber int, --当前的页码
@PageSize int, --每页显示的数据量
@SequenceField varchar(100), --排序字段
@DataCount int out --总数据量
)
as
begin DECLARE @SqlAll VARCHAR(MAX)
DECLARE @Sql1 VARCHAR(MAX)
SET @SqlAll= @SqlString --提取总记录数
declare @Sqlcount nvarchar(max)
set @Sqlcount = ISNULL(@Sql1,' ')+' '+N'select @countNum = count(1) from ('+@SqlString+') as aaaaaaaaa'
exec sp_executesql @Sqlcount,N'@countNum int out',@DataCount out declare @BNum int
declare @ENum int
declare @sql2 varchar(max);
set @BNum = (@PageNumber-1)*@PageSize+1
set @ENum = @PageNumber*@PageSize
if(@PageNumber>200 or @PageSize>200)
begin
set @SqlString = substring(@SqlString,charindex('select',@SqlString)+6,len(@SqlString))
--set @SqlString = 'SELECT * FROM (SELECT ROW_NUMBER() OVER ( ORDER BY '+@SequenceField+' ) AS RowNumber121 ,'+@SqlString +' ) as pageinga123 WHERE RowNumber121 BETWEEN '+convert(varchar(10),@BNum)+' AND '+convert(varchar(10),@ENum)+' ORDER BY RowNumber121 ' set @SqlString = 'SELECT * into #temp FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY '+@SequenceField+' ) AS RowNumber121 ,'+@SqlString +' ) as pageinga123 '
set @SqlString=@SqlString+' CREATE INDEX mycolumn_index ON #temp (RowNumber121) '
set @sql2='select *from #temp WHERE RowNumber121 BETWEEN '+convert(varchar(10),@BNum)+' AND '+convert(varchar(10),@ENum)+' ORDER BY RowNumber121 '
SET @Sql1 = ISNULL(@Sql1,' ')+' '+ @SqlString+@sql2
--SET @Sql1 = ISNULL(@Sql1,' ')+' '+ @SqlString
exec(@Sql1)
end
else begin
set @SqlString = substring(@SqlString,charindex('select',@SqlString)+6,len(@SqlString)) set @SqlString = 'SELECT * FROM (SELECT ROW_NUMBER() OVER ( ORDER BY '+@SequenceField+' ) AS RowNumber121 ,'+@SqlString +' ) as pageinga123 WHERE RowNumber121 BETWEEN '+convert(varchar(10),@BNum)+' AND '+convert(varchar(10),@ENum)+' ORDER BY RowNumber121 '
SET @Sql1 = ISNULL(@Sql1,' ')+' '+ @SqlString
exec(@Sql1)
end end
SQL ROW_NUMBER() 通用分页存储过程的更多相关文章
- Sql Server通用分页存储过程
Sql Server2005通用分页存储过程 CREATE PROCEDURE [dbo].[Common_GetPagedList] ( @TableName nvarchar(100), --表名 ...
- SQL SERVER 通用分页存储过程,两种用法任你选
写在前面 从SQLSERVER 2005开始,提供了Row_Number()函数,利用函数生成的Index来处理分页,按照正常的逻辑思维都是传pageIndex和pageSize来完成分页,昨天前端和 ...
- SQL Server 通用分页存储过程
create proc commonPagination ), --要显示的列名,用逗号隔开 ), --要查询的表名 ), --排序的列名 ), --排序的方式,升序为asc,降序为 desc ), ...
- SQL Server的通用分页存储过程 未使用游标,速度更快!
经过一个下午的时间,和我一个同事(绝对是高手)的共同努力下,摸索出了以下的思路: 1.确定存储的输入参数: 1)SQL脚本,该参数接收完整的.正确的SQL检索文本,可将原应用中写好的SQL脚本直接传入 ...
- SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程(支持单表或多表结查集分页)
SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程,支持单表或多表结查集分页,存储过程如下: /******************/ --Author:梦在旅 ...
- SQL Server 2008 通用分页存储过程
1.alert USE [数据库名称] GO /****** Object: StoredProcedure [dbo].[dbTab_PagerHelper] Script Date: 08/22/ ...
- 支持DISTINCT的通用分页存储过程(SQL2005)
/****** 对象: StoredProcedure [dbo].[P_CommonPagination] 脚本日期: 07/22/2009 10:22:01 ******/ SET ANSI_NU ...
- MySql通用分页存储过程
MySql通用分页存储过程 1MySql通用分页存储过程 2 3过程参数 4p_cloumns varchar(500),p_tables varchar(100),p_where varchar(4 ...
- Oracle通用分页存储过程的创建与使用
Oracle通用分页存储过程的创建与使用 1.创建Oracle包的定义.使用 REF CURSOR 数据类型来处理 Oracle 结果集.REF CURSOR 是一个指向 PL/SQL 查询所返回的结 ...
随机推荐
- php url地址栏传中文乱码解决方法集合
php地址栏传中文$_GET下来后乱码,urlencode和urldecode,iconv,base64_encode等方法,整理基本是常用的了. php地址栏传中文$_GET下来后乱码,urlen ...
- 11.1Java-接口
一.接口 interface定义:固定格式 public abstract 返回值类型 方法名字(参数列表);代码: public interface AMyInterface { public ab ...
- fetch和axios区别,proxy代理配置
1.今天使用fetch调用接口时使用console.log(res.data)始终是undefined,使用anxios请求则可以成功请求到数据,非常奇怪,于是查了一圈,才搞明白是我自以为了,哎,浪费 ...
- 应用开始界面简单倒计时的dialog
activity_main.xml 下面图片显示的还要在activity_main.xml里面加个TextView <?xml version="1.0" encoding= ...
- mongodb多条件查询总结
根据两字段乘积过滤查询分页数据 db.cron.aggregate([{$project:{_id:,AppID:,result:{$add:["$endlottery",&quo ...
- java语言基础-类型运算细节
代码一: public class varDemo{ public static void main(String[] args) { byte a2; a2=3+4; System.out.prin ...
- UVA 11922 Permutation Transformer (Splay树)
题意: 给一个序列,是从1~n共n个的自然数,接下来又m个区间,对于每个区间[a,b],从第a个到第b个从序列中分离出来,翻转后接到尾部.输出最后的序列. 思路: 这次添加了Split和Merge两个 ...
- 什么是Entitlement
Entitlement(权限),可以想象成App里用于描述该App可以调用哪些服务的字符串.苹果的操作系统(mac os或者iOS)会通过检查这个串,决定这个应用是否可以调用相关功能.比如iCloud ...
- 谷歌 滚动条样式 scrollbar
谷歌 滚动条样式 scrollbar main.less :: 是css3 最新的伪类 /*滚动条整体样式*/ ::-webkit-scrollbar { width: 10px; height: ...
- 【软件构造】第八章第三节 代码调优的设计模式和I/O
第八章第三节 代码调优的设计模式和I/O 本节学习如何通过对代码的修改,消除性能瓶颈,提高系统性能?——代码调优.面向性 能的设计模式 Outline Java调优 代码调优的概念 单例模式(Sing ...