概述
alter proc sp_PagedByConditions
(
@CountryCode nvarchar(20),--国家编号
@CId int,--城市的ID
@PageIndex int =1,--当前要显示的页码
@PageSize int=3, --每页要显示的数据条数(页大小)
@TotalPages int out --总页数,一个输出参数
)
as
begin
--定义的变量,一定要给初始值
declare @sqlWhere nvarchar(max)='' ,@sqlPaged nvarchar(max)=''
if(@CountryCode!='')
begin
set @sqlWhere+=' and CountryCode='''+@CountryCode+'''' --'and CountryCode='''+CHN+''''
end
if(@CId<>0)
begin
set @sqlWhere+=' and ID='+CAST(@CId as nvarchar(20))
end
set @sqlPaged = 'select top('+cast(@PageSize as nvarchar(20))+') * from
(select ROW_NUMBER() over(order by ID) as 行号,* from city where 1=1 '+@sqlWhere+' ) t
where 行号>'+cast(((@PageIndex-1)*@PageSize) as nvarchar(20))
exec sp_executesql @sqlPaged
--================取得要分页的总数据量,计算总页数================================================================
declare @sqlCount int=0 ,@sqlstr nvarchar(max)=''
set @sqlstr='select @c= count(*) from city where 1=1'+@sqlWhere
exec sp_executesql @sqlstr,N'@c int out',@sqlCount out
set @TotalPages=CEILING(@sqlCount*1.0/@PageSize)
end
go
declare @c int
exec sp_PagedByConditions 'CHN',0,1,5,@c out
select @c
最后
以上就是野性汽车为你收集整理的多条件存储过程 (条件拼接SQL语句)的全部内容,希望文章能够帮你解决多条件存储过程 (条件拼接SQL语句)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复