我有下表:
Name | Value
---------------------------
key1 | val1
key2 | val2
key1 | val3
key4 | val4
. | .
. | .
. | .
. | .
我需要输出如下:
key1 | key2 | key1 | key4 | ......
-----------------------------------------------------------------------------
val1 | val2 | val3 | val4 | ......
我尝试使用动态数据透视实现此功能,但由于key1是重复列而失败,因此失败了。
的SQLError: 'p'多次指定了'key1'列。
我使用的Pivot查询: http://sqlfiddle.com/#!3/33f66/4
答案 0 :(得分:0)
使用数据透视表可能无法实现,因为列名相同。这是另一种解决方案:
DECLARE @sql AS NVARCHAR(MAX)
SELECT @sql = STUFF((SELECT ',''' + value + ''' as ' + QUOTENAME(Name)
from mytable
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
EXEC ('select '+ @sql)
结果:
key1 key2 key1 key4
val1 val2 val3 val4