sqlserver自动生成json

388 阅读1分钟
原文链接: mp.weixin.qq.com

declare@TableName as varchar(50) -- 你要查询的表

declare @sql as  varchar(3000) --拼接字符串,不要给它赋值

declare@CurPageFirstRow int--当前页的第一行,当你的程序要给此函数赋值时候,需要已经计算出的 公式如→(pageNo-1)*pageSize +1

declare @CurPageLastRowint --当前页的最后一页,同样要计算过的, 公式如→pageNo*pageSize

declare@OrderByColumn varchar (20)

set @TableName= 'Merchandise'-- 赋值,你要分页的表

set@CurPageFirstRow = 1;

set@CurPageLastRow = 20;

set@OrderByColumn ='MerbarCode';

select @sql = isnull(@sql ,'with paging as ( selectreplace(''{''+ ')+ '''"'+name+ '":"''+isnull(cast('+name+ ' as varchar),'''')+''",'''  from SYS.SYSCOLUMNS  

WHERE ID = OBJECT_ID(@TableName ) 

set@sql =  @sql+'' +','''''''','''') assourceTable,ROW_NUMBER()OVER(ORDER BY '

+@OrderByColumn+ ') as rn ,(select count('+@OrderByColumn+ ') from '+@TableName+ ' )

as total from'+@TableName +' ) 

select *  frompaging  where rn between '

+cast( @curpagefirstrow as varchar )+'

and'+cast (@curpagelastrow as varcharEXEC(@sql ) 

   

declare@TableName as varchar(50 )--你要查询的表

declare @sql as  varchar(3000 ) --拼接字符串,不要给它赋值

declare @CurPageFirstRowint--当前页的第一行,当你的程序要给此函数赋值时候,需要已经计算出的 公式如→(pageNo-1)*pageSize +1

declare@CurPageLastRow int --当前页的最后一页,同样要计算过的, 公式如→pageNo*pageSize

eclare@OrderByColumn varchar(20)

set @TableName= 'Merchandise'-- 赋值,你要分页的表

set@CurPageFirstRow = 1;

set@CurPageLastRow = 20;

set@OrderByColumn ='MerbarCode';

select @sql = isnull(@sql ,'with paging as ( selectreplace(''{''+ ')+'''"'+name+ '":"''+isnull(cast('+name+' as varchar),'''')+''",'''  

from SYS.SYSCOLUMNS 

WHERE ID = OBJECT_ID(@TableName )

set @sql =  @sql+'' +','''''''','''') as sourceTable,ROW_NUMBER()OVER(ORDER BY '+@OrderByColumn+') as rn ,(select count(' +@OrderByColumn+') from '+@TableName+' ) as total  from  ' +@TableName+' ) selectsourceTable+''"rn":"''+ cast(rn asvarchar)+''","total":"''+cast( total asvarchar)+''"},''from paging  wherern between ' +cast(@curpagefirstrow as varchar)+ ' and  '+cast(@curpagelastrow as varchar )

EXEC(@sql)