sql + N', ' + CHAR(10) + QUOTENAME([type]) + N' = ISNULL('+ QUOTENAME([type]) +N', 0)' FROM (SELECT DISTINCT...FROM #temp) a' + CHAR(10) + N'PIVOT' + CHAR(10) + N'(SUM([amount]) FOR [type] IN('+ STUFF((SELECT DISTINCT...','+QUOTENAME([type]) FROM #temp FOR XML PATH('')),1,1,'') +N')) b'
EXEC(@sql)
--2.列转行 IF OBJECT_ID(...temp SELECT N'One', 3, 3 UNION ALL SELECT N'Two', 9, 0 GO
--1.union all SELECT rowno=ROW_NUMBER() OVER(ORDER...name, [type] = N'type2', [amount] = type2 FROM #temp ) T
--2.unpivot SELECT rowno=ROW_NUMBER() OVER(ORDER