提问人:Lukasz Bf 提问时间:12/19/2022 最后编辑:jarlhLukasz Bf 更新时间:12/22/2022 访问量:50
While 循环与 += (Addition Assignment) 只显示最后一个 resoult
While loop with += (Addition Assignment) shows just last resoult
问:
我有一个用于存储临时数据的 sql 表
create table TempDataStore (ID int, HtmlCode NVARCHAR(max))
我用 while 循环填充此表
while @cnt < 3
BEGIN
set @html = CONVERT(nvarchar(MAX),dilos.report.CreateHTMLTable(
(
select * from dilos.report.getHESExpress(cast(@site as varchar))
order by status,SendungsNr offset 0+@cnt*4 rows fetch next 4 rows only FOR XML PATH('row'),ELEMENTS XSINIL),null,'',''))
insert into TempDataStore values(@cnt+1, @html)
set @cnt = @cnt +1
end
用于将sql转换为html表格,并将查询结果划分为4行。
现在我想创建一个名为 @htmlSummary 的 nvarchar(MAX) 变量,将 TempDataStore 中的每一行显示为一个 html 代码 (string/nvachar)。
while @cnt<3 --just some number
begin
set @htmlSummary = '<p><h3>Express Orders</h3>' +coalesce(replace((select HtmlCode from TempDataStore where id =@cnt+1),'<table border="1" style="font-size:40px;','<table class="table-sm table-striped"'),'') +'</p>'
set @htmlSummary +=@htmlSummary
set @cnt =@cnt+1
END
select @htmlSummary
问题在于,@htmlSummary最后只存储 TempDataStore 表的最后一行。
答: 暂无答案
评论
set @htmlSummary +=@htmlSummary
前面是 ,这显然覆盖了 。使用两个单独的变量,或者将两个语句合并为一个:set @htmlSummary = '...'
@htmlSummary
set @htmlSummary += '...'