从通用分页存储过程[ROWCOUNT方式]抽出适合自己需求的分页过程

通用分页存储过程很实用,但毕竟不是全适用于一些环境,譬如我遇到过一种情况,需要先外链两个表,然后再关联几个表,总之参数传递很烦人,这里不细说了,现在只谈实现查询后,怎么分页的简单技巧
1,建立用户函数
CREATE   function   F_xxxx(@ID  nvarchar(36),@Key nvarchar(36),......)
{
......//这里查询出你需要分页的所有数据,可以带参数来查询
}
建函数的目的是为了整合查询的数据,主要是可以带入参数,很方便.
注,函数中没有exec语句,不可以拼接SQL,不过可以调用存储过程.
2,建分页存储过程,具体框架和说明如下
/**//*080520  by zjyaoo@live.cn*/  
CREATE PROCEDURE dbo.SPCustomPaging
    (
    
@PageSize int =15--页面大小
    @PageNumber int =1--页码
    @传入到函数的参数1 nvarchar(36), --传入到函数的参数,这里参数个数根据建的函数来决定
    @传入到函数的参数2 nvarchar(36), --传入到函数的参数,这里参数个数根据建的函数来决定
    @StrWhere nvarchar(2000)=' AND 1=1' , --条件,注:传入的@StrWhere需要replace.(''','''')处理
    @RecordCount int =0  output  --返回总的条数
    )
AS
DECLARE @strStartRow int
IF @PageNumber < 1
    
SET @PageNumber = 1
SET @strStartRow =(@PageNumber - 1)* @PageSize + 1  --设置其实页码
--
--
DECLARE @str_Count_SQL nvarchar(500
SET @str_Count_SQL= 'SELECT @TotalCount=count(*) FROM  [F_建立的的函数]('''+@函数参数1+''','''+@函数参数2+''') Where 1=1 '  + @StrWhere  --1=1,用于外接条件
EXEC sp_executesql @str_Count_SQL,N'@TotalCount int=0 output',@RecordCount output  --获取总的条数
Declare @Sql nvarchar(1000)
set @Sql =
'DECLARE  @SortColumn  nvarchar(255)  --建几个临时变量
DECLARE  @SortNullValue  nvarchar(255) 
DECLARE  @PKStartValue  nvarchar(255)  
SET @SortNullValue = CAST(
'''' as int)
SET ROWCOUNT  
'+  cast(@strStartRow   as  nvarchar(5))  +'   --整数转为字符
SELECT @SortColumn= isNull([函数中的分类字段] ,@SortNullValue), @PKStartValue = [函数中的关键字段]    FROM   [F_建立的的函数](
'''+@函数参数1+''','''+@函数参数2+''')   Where 1=1   '+@StrWhere +'  ORDER BY [函数中的分类字段], [再加个函数中的关键字段] Desc 
SET ROWCOUNT   
'+ cast(@PageSize   as  nvarchar(5)) +'    --整数转为字符
SELECT * FROM  F_ManufacturerDiscount(
'''+@OrgID+'''
 WHERE  (isNull([函数中的分类字段],@SortNullValue)>@SortColumn or (isNull([函数中的分类字段],@SortNullValue)=@SortColumn and [函数中的关键字段]<=@PKStartValue))  
'+@StrWhere +'  ORDER BY [函数中的分类字段],[函数中的关键字段] Desc
RETURN
'
Exec (@Sql)
GO

转载于:https://www.cnblogs.com/zjy/archive/2008/05/20/1203589.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java加密与解密的艺术~Security

Security类的任务就是管理Java程序中所用到的提供者类。 向系统中追加一个提供者 // 加到数组尾 public static int addProvider(Provider provider) // 加到指定位置&#xff0c;从1开始&#xff08;越靠前&#xff0c;优先级越高&#xff09; public static int insertProvi…

C++学习之路 | PTA乙级—— 1062 最简分数 (20 分)(精简)

1062 最简分数 (20 分) 一个分数一般写成两个整数相除的形式&#xff1a;N/M&#xff0c;其中 M 不为0。最简分数是指分子和分母没有公约数的分数表示形式。 现给定两个不相等的正分数 N ​1 ​​ /M ​1 ​​ 和 N ​2 ​​ /M ​2 ​​ &#xff0c;要求你按从小到大的顺序列…

量子计算机就要来了,它真的能改变世界吗?

来源&#xff1a;网易科技概要&#xff1a;量子计算机的理论运行速度远远超出任何传统的超级计算机。在位于纽约市以北约50英里处僻静乡村中的一个小型实验室内&#xff0c;天花板下缠绕着错综复杂的管线和电子设备。这一堆看似杂乱无章的设备是一台计算机。它与世界上的任何一…

Fiddler (二) : Script 的 用法

Fiddler (二) Script 用法(转)&#xff1a;http://www.cnblogs.com/mrzhoushare/articles/4953592.html Fiddler 高级用法&#xff1a;Fiddler Script 与 HTTP 断点调试&#xff1a;http://www.cnblogs.com/hushaojun/p/5644645.html 通过前一篇博客 【Fiddler教程】&#xff0…

C++学习之路 | PTA乙级—— 1063 计算谱半径 (20 分)(精简)

1063 计算谱半径 (20 分) 在数学中&#xff0c;矩阵的“谱半径”是指其特征值的模集合的上确界。换言之&#xff0c;对于给定的 n 个复数空间的特征值 { a ​1 ​​ b ​1 ​​ i,⋯,a ​n ​​ b ​n ​​ i }&#xff0c;它们的模为实部与虚部的平方和的开方&#xff0c;而“…

CSDN与易观联合发布《2017-2018中国人工智能产业路线图》

来源&#xff1a;机器人大讲堂下载链接:https://pan.baidu.com/s/1ViNbtAi-wGJbLURyYp30TA 密码:a3dz未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评…

Java加密与解密的艺术~MessageDigest

MessageDigest类实现了消息摘要算法&#xff0c;它继承于MessageDigestSpi类&#xff0c;是Java安全提供者体系结构中最简单的一个引擎类。 在Java API的列表中&#xff0c;总能看到后缀名带有SPI&#xff08;Service Provider Interface&#xff09;的类。如果要实现自定义的…

网站时间显示

网站时间显示2<STYLE>A.menuitem {}{ COLOR: menutext; TEXT-DECORATION: none } A.menuitem:hover {}{ COLOR: highlighttext; BACKGROUND-COLOR: highlight } DIV.contextmenu {}{ BORDER-RIGHT: 2px outset; BORDER-TOP: 2px outset; Z-INDEX: 999; VISIBILITY: hidde…

直击2018AWE:智能语言交互大厮杀、老品牌争先搭建平台、第三方平台迅速崛起

来源&#xff1a;物联网智库一年一度家电盛宴&#xff0c;中国家电及消费电子博览会&#xff08;AWE&#xff09;在上海新国际博览中心拉开帷幕&#xff01;一大批智能家电产品不断发酵&#xff0c;白电、黑电、小家电等让人应接不暇。除了不断精进的颜值外&#xff0c;科技感更…

旧文重发:苹果是怎么吃到的?

这篇文章发表于《程序员》2008.03期。 苹果是怎么吃到的&#xff1f;——职业规划&#xff0c;从了解自己开始 克里希拉穆提有一本著作&#xff0c;名为《重新认识你自己》&#xff0c;我每每读起&#xff0c;都汗如雨下。克氏的每一句话&#xff0c;每一个发问都直刺人的内心&…

C++学习之路 | PTA乙级—— 1064 朋友数 (20 分)(精简)

1064 朋友数 (20 分) 如果两个整数各位数字的和是一样的&#xff0c;则被称为是“朋友数”&#xff0c;而那个公共的和就是它们的“朋友证号”。例如 123 和 51 就是朋友数&#xff0c;因为 123 51 6&#xff0c;而 6 就是它们的朋友证号。给定一些整数&#xff0c;要求你统计…

数据安全架构设计与实战~如何加密结构化数据

针对结构化数据&#xff08;数据库、key-value等&#xff09;&#xff0c;加密主要有两种方式&#xff1a; 1、应用层字段加密&#xff0c;数据在入库前加密&#xff0c;直接向数据库中写入字段密文&#xff1b; 2、存储系统透明加密&#xff08;静态加密&#xff09;&#x…

浙江大学吴朝晖:脑机融合系统综述

来源&#xff1a; 神经科技本文发表于《生命科学》&#xff08;Chinese Bulletin of Life Sciences&#xff09;第26卷 第6期 2014年6月DOI: 10.13376/j.cbls/2014090脑机融合系统综述吴朝晖*&#xff0c;俞一鹏&#xff0c;潘 纲&#xff0c;王跃明(浙江大学计算机科学与技术…

[转]索引的学习

&#xff08;一&#xff09;SQLS如何访问没有建立索引的数据表   Heap译成汉语叫做“堆”&#xff0c;其本义暗含杂乱无章、无序的意思&#xff0c;前面提到数据值被写进数据页时&#xff0c;由于每一行记录之间并没有特定的排列顺序&#xff0c;所以行与行的顺序就是随机无…

数据安全架构设计与实战~思维导图

#原图 System.out.println("https://www.processon.com/view/link/619cccede0b34d032a78237d");

C++学习之路 | PTA乙级—— 1066 图像过滤 (15 分)(精简)

1066 图像过滤 (15 分) 图像过滤是把图像中不重要的像素都染成背景色&#xff0c;使得重要部分被凸显出来。现给定一幅黑白图像&#xff0c;要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换。 输入格式&#xff1a; 输入在第一行给出一幅图像的分辨率&am…

apt-get、apt、yum、dpkg、rpm

apt-get 命令详解(中文)以及实例&#xff1a;http://blog.51yip.com/linux/1176.html linux yum命令详解&#xff1a;http://www.cnblogs.com/chuncn/archive/2010/10/17/1853915.html 配置 yum 源的两种方法&#xff1a;http://www.cnblogs.com/shuaixf/archive/2011/11/30/22…

下一版Win10,微软人工智能平台Windows ML要和你见面了

原作 Kam VedBratRoot 编译自 Windows blog量子位 出品 | 公众号 QbitAI今日&#xff0c;微软在开发者日上发布了AI开发者平台。微软还提到&#xff0c;旗下产品都可以本地直接处理AI任务。另外Win10系统将会Visual Studio 15.7 预览版上增加了ONNX文档到UWP应用里&#xff0c;…

C++学习之路 | PTA乙级—— 1068 万绿丛中一点红 (20 分)(精简)

1068 万绿丛中一点红 (20 分) 对于计算机而言&#xff0c;颜色不过是像素点对应的一个 24 位的数值。现给定一幅分辨率为 MN 的画&#xff0c;要求你找出万绿丛中的一点红&#xff0c;即有独一无二颜色的那个像素点&#xff0c;并且该点的颜色与其周围 8 个相邻像素的颜色差充分…

为什么我们要使用HTTP Strict Transport Security?

HTTP Strict Transport Security (通常简称为HSTS) 是一个安全功能&#xff0c;它告诉浏览器只能通过HTTPS访问当前资源, 禁止HTTP方式。 001. Freebuf百科&#xff1a;什么是Strict-Transport-Security 我摘自owasp上的一段定义&#xff1a; HTTP Strict Transport Securit…