话不多说,请看代码
-------------------------------------
-----作者:张欣宇
-----时间:2013-06-28
-----简介:根据参数和条件分页查询
-------------------------------------
Createproc [dbo].[Up_PagingQueryByParameter]
(
----- 表名或能查询到结果的SQL语句{SQL语句左右必须有括号例:(select * from tbl1)}
@TableNamevarchar(max),
----- 要查询的列名语句; 可空默认*
@ColumnNamevarchar(5000),
----- 用来排序的列; 不可为空
@OrderByColumnNamevarchar(50),
----- 排序desc(倒序5.4.3.2.1)或asc(正序1.2.3.4.5); 可空默认asc
@ShrtByvarchar(4),
----- Where条件; 可空默认1=1
@Wherevarchar(5000),
----- 每页显示数; 可空默认20
@PageShowsint,
----- 当前页数; 可空默认1
@CurrentPageint,
----- 0为分页查询;其他为查询全部; 可空默认0
@IsPagingint
)
as
begin
----- 参数检查及规范
ifisnull(@Where,N'')=N''set@Where= N'1=1';
ifisnull(@ColumnName,N'')=N''set@ColumnName = N'*';
ifisnull(@PageShows,0)<1set@PageShows = 20;
ifisnull(@CurrentPage,0)<1set@CurrentPage = 1;
ifisnull(@ShrtBy,N'')=N''set@ShrtBy ='asc';
ifisnull(@IsPaging,0)<>1set@IsPaging = 0;
----- 定义
-- 拼接的SQL语句
declare@SqlStr nvarchar(max);
declare@SqlWithStr nvarchar(max);
-- 开始条数
declare@StartIndexint;
-- 结束条数
declare@EndIndexint;
----- 赋值
set@StartIndex = (@CurrentPage-1)*@PageShows+1;
print(@CurrentPage);
print(@PageShows);
print(@StartIndex);
set@EndIndex = @CurrentPage*@PageShows;
print(@EndIndex);
set@OrderByColumnName=@OrderByColumnName+' '+@ShrtBy;
----- 分页查询
set@SqlWithStr = N'with temp as(select ROW_NUMBER() over(order by '+@OrderByColumnName+N') as RowNumber,'+@ColumnName+N' from '+@TableName+N' as tableName where '+@Where+N')';
if(@IsPaging = 0)
begin
set@SqlStr = @SqlWithStr + N' select '+@ColumnName+N' from temp where temp.RowNumber between '+convert(nvarchar(20),@StartIndex)+N' and '+convert(nvarchar(20),@EndIndex)+N'';
---- print(@SqlStr);
exec(@SqlStr);
----- 总数查询
set@SqlStr = @SqlWithStr + N' select count(*) as TotalNumber from temp';
---- print(@SqlStr);
exec(@SqlStr);
end
else
begin
set@SqlStr = @SqlWithStr + N' select '+@ColumnName+N' from temp';
---- print(@SqlStr);
exec(@SqlStr);
end
end
|
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔