【发布时间】:2016-03-27 20:13:20
【问题描述】:
我有一个工作正常的 tsql 动态数据透视表查询,尽管我对最终输出中的列名不满意。
要使其工作,用户必须从 200 个水果名称的列表中选择最多 20 个水果名称。然后我构建数据透视表,这样每次运行选择时我都会得到不同的列名。 例如: 第一次列名是:apple、orange 和 pear 第二次是:橙子、香蕉、猕猴桃和苹果
我的问题是:是否有可能使用静态名称,例如:第一列的名称始终为“col_1”,第二列的名称为“col_2”等?
select语句如下:
DECLARE @idList varchar(800)
DECLARE @sql nvarchar(max)
SELECT @idList = coalesce(@idList + ', ', '') + '['+ltrim(rtrim(id_producto)) +']'
from gestor_val_pos
group by id_producto order by id_producto
SELECT @sql = 'select * from #correlaciones pivot (max (correl)
for codigo2 in (' + @IDlist + ')) AS pvt order by codigo1;'
exec sp_executeSQL @sql
【问题讨论】:
标签: sql tsql sql-server-2012