我有一张表,默认有 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
query is
select * ,' ' as D21 from tbl1
这将为我提供直到 D20 的所有 20 列和一个额外的 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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)