小编典典

使用选择查询动态添加列

sql

我有一张表,默认有20列

这20列名为D1 D2 D3 … D20,现在带有选择查询,我想动态添加其他列。例如,对于D21 D22 …
D31,我如何编写查询以动态递增添加此列值..最大限制为31,请帮助

缺省表列
D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D20

现在我想在连续性将列添加到D20即D21等高达D31,而选择该列中的其他列即来回D21至D31也被添加并选择

查询是

select * ,'  ' as D21 from tbl1

这将使我所有20列达到D20,另外一个D21达到我希望达到D31,而无需对其他列名称进行硬编码


阅读 219

收藏
2021-04-07

共1个答案

小编典典

尝试下面的代码

declare @a int =21
Declare @sql varchar(max)='select *,'
while @a <32
begin
set @sql = @sql + cast(@a as varchar) + ' as D' + cast(@a as varchar) + ' ,'

set @a = @a+1

end
set @sql = substring(@sql,0,len(@sql)-1) + ' from tbl1'

 exec( @sql)
2021-04-07