daniel-niu
Create proc [dbo].[GetHospitalList]

@pagesize int,
@page int,
@hospitalcode nvarchar(50),
@citycode nvarchar(50),
@type nvarchar(50),
@memo nvarchar(50),
@provincecode nvarchar(50),
@status nvarchar(50)
as
--sp_executesql 执行的参数@sql 需要是nvarchar类型。
declare @sql nvarchar(max)
set @sql=\'SELECT TOP \'+(convert(nvarchar(10),@pagesize))+\' totalcount, hospitalcode,NameCn , [status],CreateUser,CreateDate,UpdateDate ,Citycode,[type],memo from ( select TOP \'+convert(nvarchar(10),(@page*@pagesize))+\' ROW_NUMBER() OVER (ORDER BY namecn) AS RowNum ,count(1) over() as totalcount, hospitalcode,NameCn , a.[status],CreateUser,CreateDate,UpdateDate , a.Citycode,[type],memo from table1 a left join table2 b on b.citycode=a.citycode where 1=1 \' if(@hospitalcode<>\'\') begin set @sql+=\' and hospitalcode=@hospitalcode\' end if(@citycode<>\'\') begin set @sql+=\' and a.citycode=@citycode\' end if(@type<>\'\') begin set @sql+=\' and [type]=@type\' end if(@memo<>\'\') begin set @sql+=\' and memo=@memo\' end if(@provincecode<>\'\') begin set @sql+=\' and b.pcode=@provincecode\' end set @sql+=\' ) AS p WHERE RowNum BETWEEN \'+Convert(nvarchar(10),((@page-1)*@pagesize+1))+\' AND \'+convert(nvarchar(10),(@page * @pagesize))+ \' ORDER BY RowNum\' print @sql EXEC sp_executesql @sql ,N\'@pagesize int,@page int, @hospitalcode nvarchar(50),@citycode nvarchar(50),@provincecode nvarchar(50),@memo nvarchar(50),@type nvarchar(50)\', @pagesize=@pagesize,@page=@page ,@hospitalcode=@hospitalcode,@citycode=@citycode,@provincecode=@provincecode,@memo=@memo,@type=@type

 

分类:

技术点:

相关文章: