博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL存储过程分页查询--只支持MSSQL2005及以上
阅读量:6527 次
发布时间:2019-06-24

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

USE [QSM]GO/****** Object:  StoredProcedure [dbo].[UP_SysGetListByPage]    Script Date: 04/12/2017 17:47:02 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author:        
-- Create date:
-- Description: 分页存储过程(只支技MSSQL2005及以上版本)-- =============================================ALTER PROCEDURE [dbo].[Sp_GetListByPage] @Select nvarchar(1000) --要查询的字段(已含SELECT) ,@From nvarchar(1000) --表名 (已含From) ,@WhereSql nvarchar(1000) --查询条件 (已含Where 1=1 ) ,@GroupBy nvarchar(250) --分组 (已含Group By) ,@Having nvarchar(250) --过滤条件 (已含Having) ,@OrderBy nvarchar(500) --排序字段 (已含Order By) ,@IsDesc bit=0 --排序: 0=ASC,1=DESC ,@PageIndex int = 0 --页索引: 0=第1页 ,@PageSize int = 10 --页容量: 默认10行 ,@IsRecord bit =0 --0=数据集查询,1=取记录数ASBEGIN SET NOCOUNT ON; DECLARE @sqlFrom nvarchar(3000); --要查询的字段及表 DECLARE @pagedSql nvarchar(max); --拼接后的总SQL语句 SET @sqlFrom=N' from ' + @From; IF(LEN(@WhereSql)>0) SET @sqlFrom+=' where 1=1 ' + @WhereSql; IF(LEN(@GroupBy)>0) SET @sqlFrom+=' group by ' + @GroupBy; IF(LEN(@Having)>0) SET @sqlFrom+=' having ' + @Having; IF(@IsDesc=1) SET @OrderBy+=' DESC '; SET @pagedSql= N'with PagedList as ' +' ( ' +' select top 100 percent '+@Select + ' , row_number() over (order by '+@OrderBy+') as mydata_RowNumber ' + @sqlFrom +' ) ' +' select * ' +' from PagedList ' +' where mydata_RowNumber between ' + STR(@PageIndex*@PageSize+1) + ' and ' + STR(@PageIndex*@PageSize+@PageSize) ; IF @IsRecord =1 SET @pagedSql = 'select count(1) as [RowCount] from ' + @From +' where 1=1 ' + @WhereSql ; EXEC(@pagedSql) --SELECT @pagedSql --生成的语句END

 

转载于:https://www.cnblogs.com/yuyuanfeng/p/6700463.html

你可能感兴趣的文章
linux下配置网络环境
查看>>
java Windows7 下环境变量设置
查看>>
NBU异构还原Oracle完整备份的一些总结
查看>>
freeBSD安装详细讲解
查看>>
WSFC2016 VM弹性与存储容错
查看>>
文档管理,文本编辑控件TX Text Control .NET for WPF
查看>>
复习 Python 匿名函数 内建函数
查看>>
Security Identifiers | Win SRV2016 SID Change 修改
查看>>
看看来自日本的扫描,做网站需要注意的
查看>>
JDK 1.7+Android SDK+IntelliJ IDEA 13+Genymotion 安卓开发环境部署
查看>>
钓鱼邮件***防范指南
查看>>
session_start()放置位置的不正确引发的ROOT常量 未定义的错误
查看>>
如何设定VDP同时备份的任务数?
查看>>
ipsec的***在企业网中的经典应用
查看>>
过来人谈《去360还是留在百度?》
查看>>
mysql备份工具innobackupex,xtrabackup-2.1安装,参数详解
查看>>
【复制】slave筛选复制之二(create/drop table语句)
查看>>
Movie Store OpenCart 自适应主题模板 ABC-0249
查看>>
mytop-MySQL监控工具
查看>>
RedHat linux YUM本地制作源
查看>>