SQL为矩阵插入大量列

时间:2013-08-05 16:02:34

标签: sql sql-server matrix multiple-columns

我有没有快速的方法可以将行中的值转换为列标题..说我有行值ABC ... Z在一个名为indx_nm的列中。是否有一种简单的方法可以制作列标题ABC ... Z,而无需手动填充(我有1000个不同的值,我遇到制作一个协方差矩阵

1 个答案:

答案 0 :(得分:0)

您可以使用动态PIVOT。

DECLARE @cols AS NVARCHAR(MAX),
@query  AS NVARCHAR(MAX);

SET @cols = STUFF((SELECT','+ CONVERT(VARCHAR,indx_nm)             FROM TableName c             FOR XML PATH(''),TYPE             ).value('。','NVARCHAR(MAX)')         ,1,1, '')

设置@query ='SELECT'+ @cols +'来自(                 选择indx_nm,                 Othercolumn                 来自临时            ) X             枢             (                  MAX(Othercolumn)                 for indx_nm in('+ @cols +')             )p'

执行@query