博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MSSQL按分页前去盘查了局的存储进程
阅读量:4546 次
发布时间:2019-06-08

本文共 1992 字,大约阅读时间需要 6 分钟。

  泉源:网海拾贝


改一下,看看这样是不是更好一点?
/*
函数称号: GetRecordFromPage
函数遵从: 获取指定页的数据
参数阐发: @tblName 包括数据的表名
@fldName 关键字段名
@PageSize 每页记载数
@PageIndex 要获取的页码
@IsCount 能否要获得记载数
@OrderType 排序典范圭表规范规范, 0 - 升序, 1 - 降序
@strWhere 盘查条件 (注重: 不要加 where)
*/
CREATE PROCEDURE pGO_GetRecordFromPage
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 字段名
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1, -- 页码
@IsCount bit = 0, -- 前去记载总数, 非 0 值则前去
@OrderType bit = 0, -- 设置排序典范圭表规范规范, 非 0 值则降序
@strWhere varchar(1000) = '' -- 盘查条件 (注重: 不要加 where)
AS
declare @strSQL varchar(6000) -- 主语句
declare @strTmp varchar(500) -- 临时变量
declare @strOrder varchar(400) -- 排序典范圭表规范规范
-- 如果是盘查记载总数,直接利用Count(0)函数
if @IsCount != 0
begin
if @strWhere != ''
set @strSQL = 'select count(*) as Total from [' @tblName '] where ' @strWhere
else
set @strSQL = 'select count(*) as Total from [' @tblName '] '
end
--如果是想盘查记载,则
else
begin
if @PageIndex = 1
begin
set @strTmp = ''
if @strWhere != ''
set @strTmp = ' where ' @strWhere
set @strSQL = 'select top ' str(@PageSize) ' * from ['
@tblName ']' @strTmp ' ' @strOrder
end
else
begin
--如果是降序盘查……
if @OrderType != 0
begin
set @strTmp = '<(select min'
set @strOrder = ' order by [' @fldName '] desc'
end
--如果是升序盘查……
else
begin
set @strTmp = '>(select max'
set @strOrder = ' order by [' @fldName '] asc'
end
if @strWhere != ''
set @strSQL = 'select top ' str(@PageSize) ' * from ['
@tblName '] where [' @fldName ']' @strTmp '(['
@fldName ']) from (select top ' str((@PageIndex-1)*@PageSize) ' ['
@fldName '] from [' @tblName '] where ' @strWhere ' '
@strOrder ') as tblTmp) and ' @strWhere ' ' @strOrder
else
set @strSQL = 'select top ' str(@PageSize) ' * from ['
@tblName '] where [' @fldName ']' @strTmp '(['
@fldName ']) from (select top ' str((@PageIndex-1)*@PageSize) ' ['
@fldName '] from [' @tblName ']' @strOrder ') as tblTmp)'
@strOrder
end
end
exec (@strSQL)
GO
版权声明: 原创作品,容许转载,转载时请务必以超链接办法标明文章 原始出处 、作者信息和本声明。否则将穷究轨则责任。

转载于:https://www.cnblogs.com/zgqjymx/archive/2011/03/07/1976010.html

你可能感兴趣的文章
监听键盘弹出 隐藏
查看>>
iOS开发 - NSBundle, NSDevice, NSLocale
查看>>
innerHtml安全问题
查看>>
UVA 11992,。。。伪-二维线段树
查看>>
[原创]通过函数指针实现事件消息处理
查看>>
IE下JS保存图片
查看>>
293.Flip Game
查看>>
uvaLive5713 次小生成树
查看>>
mysql原生语句基础知识
查看>>
Ubuntu11搭建QT开发环境
查看>>
深度学习样本不均衡问题解决
查看>>
Servlet中Web.xml的配置详解
查看>>
RabbitMQ headers Exchange
查看>>
硬件产品测试
查看>>
nmon for linux
查看>>
H5 EventSource 实现web页面推送功能demo
查看>>
Android JNI 学习(十):String Operations Api & Other Apis
查看>>
AutoMapper
查看>>
ecshop绕过验证码暴力破解
查看>>
数组和字符串的API使用
查看>>