【发布时间】:2020-03-26 07:06:55
【问题描述】:
我希望为特定的数据透视表添加多行。
表名:MasterTable
FieldName | FieldValue
------------------------
Field1 | F1value1
Field2 | F2value1
Field3 | F3value1
Field1 | F1value2
Field2 | F2value2
Field3 | F3value2
预期结果:
Field1 | Field2 | Field3
---------------------------------
F1value1 | F2value1 | F3value1
F1value2 | F2value2 | F3value2
我尝试了这段代码,但结果只有一行。
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT distinct ',' + QUOTENAME(FieldName) from MasterTable FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)') ,1,1,'')
set @query = 'SELECT ' + @cols + ' from (select FieldName, FieldValue from MasterTable ) x
pivot
(
max(FieldValue)
for FieldName in (' + @cols + ')
) p '
execute(@query)
输出:
Field1 | Field2 | Field3
---------------------------------
F1value1 | F2value1 | F3value1
有人可以帮助我使用数据透视表获得多行吗?
【问题讨论】:
标签: sql sql-server pivot pivot-table