sql通用分页自定义表条件存储过程

create PROCEDURE PrcTestByPage
(
 @tablename varchar(50),
 @selectfilter varchar(100),
 @orderbyfilter varchar(100),
 @selectpage int,
 @pageSize int
)
AS
BEGIN -- 存储过程开始 

declare @pkname varchar(100)  -- 获取表的主键名称
SELECT @pkname=COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE [email protected]

declare @num int
set @num=(@selectpage-1)*@pageSize

declare @strsqltwo varchar(4000)
set @strsqltwo=‘select top ‘+STR(@num)+‘ ‘[email protected]+‘ from ‘[email protected]
DECLARE @strSql varchar(4000)           --SQL执行语句
set @strSql=‘select top ‘+str(@pageSize)+‘ * from ‘[email protected]

if(len(@selectfilter)>0)   -- 判断有没有where条件
BEGIN
 set @[email protected]+‘ where ‘[email protected]
    SET @strSql = @strSql+‘ where ‘[email protected]+‘ and ‘[email protected]+‘ not in(‘[email protected]+‘)‘
END
else
 SET @strSql = @strSql+‘ where ‘[email protected]+‘ not in(‘[email protected]+‘)‘
if(len(@orderbyfilter)>0) --判断有没有排序条件
BEGIN
 set @[email protected]+‘ order by ‘[email protected]
    SET @strSql = @strSql+‘ order by ‘[email protected]
END 

EXEC (@strSql)
END  -- 存储过程结束 

GO  

exec PrcTestByPage ‘Print_order‘,‘‘,‘‘,2,6

  

时间: 2024-10-12 15:57:05

sql通用分页自定义表条件存储过程的相关文章

自定义查询条件存储过程

create procedure pro_aaa (     @canshu1 nvarchar(200),     @canshu2 nvarchar(200) )  as  begin  declare @strsql nvarchar(2000)  set @strsql='select * from table1 where 1=1'[email protected]  exec(@strsql)  end 自定义查询条件存储过程

sql:MySQL 6.7 表,视图,存储过程结构查询

#数据库MySQL 6.7 use sakila; #查询表名 show tables; # SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='sakila'; select column_name from information_schema.columns where table_schema='sakila' and table_name='actor'; #表结构 字段名, 类

自定义表做存储过程变量

第一:创建自定表类型 第二:调用 ------------------------------------------------- ------------------------------------------------

一条sql,有分页,表合并查询,多表连接,用于oracle数据库

SELECT * FROM ( SELECT TT.*,ROWNUM RN FROM ( SELECT A.CASE_ID AS TREATID, A.TYPE AS TYPE, B.CONTENT AS CONTENT, B.ADD_USER_ID AS ADDUSERID, B.Add_User_Type AS ADDUSERTRPE, A.CREATE_TIME AS CREATETIME, B.CHECK_TIME as CHECKTIME, E.ADDUSERTYPE FROM T_M

SQL 通用数据类型解析

SQL 通用数据类型 数据类型定义列中存放的值的种类. SQL 通用数据类型 数据库表中的每个列都要求有名称和数据类型.Each column in a database table is required to have a name and a data type. SQL 开发人员必须在创建 SQL 表时决定表中的每个列将要存储的数据的类型.数据类型是一个标签,是便于 SQL 了解每个列期望存储什么类型的数据的指南,它也标识了 SQL 如何与存储的数据进行交互. 下面的表格列出了 SQL

SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程(支持单表或多表结查集分页)

原文:SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程(支持单表或多表结查集分页) SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程,支持单表或多表结查集分页,存储过程如下: /******************/ --Author:梦在旅途(www.Zuowenjun.cn) --CreateDate:2015-06-02 --Function:分页获取数据 /******************/ crea

SQL SERVER 通用分页存储过程

SQL SERVER 通用分页存储过程 从SQLSERVER 2005开始,提供了Row_Number()函数,利用函数生成的Index来处理分页,按照正常的逻辑思维都是传pageIndex和pageSize来完成分页,昨天前端和我沟通,他们使用jQuery.DataTable.js插件,而且经过了公司底层的封装,pageIndex需要变动一下,变成pageIndex*pageSize来传. 也就是说按每页显示30条算,第一次传0,第二次传30这样来计算,我也是醉了. 1.传pageIndex和

Sql Server通用分页存储过程

Sql Server2005通用分页存储过程 CREATE PROCEDURE [dbo].[Common_GetPagedList] ( @TableName nvarchar(100), --表名 @ColumnNames nvarchar(1000) = '*', --字段名集合(全部字段为*,其它逗号分隔) @OrderClause nvarchar(1000), --排序从句(不包含order by) @WhereClause nvarchar(1000) =N' 1=1 ',   

SQL Server 的通用分页显示存储过程

建立一个 Web 应用,分页浏览功能必不可少.这个问题是数据库处理中十分常见的问题.经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页.但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存.游标一建立,就将相关的记录锁住,直到取消游标.游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作.而对于多表和大表中定义的游标(大的数据集合)循环很容易使程序进入一个漫长的等待