我有一张表,默认有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,而无需对其他列名称进行硬编码
尝试下面的代码
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)