动态PIVOT行转列
id name subject score remark
1 l math 86
2 l eng 68
3 l phy 88
4 z chn 99
5 z math 92
6 z com 98
7 z pe 95
8 p chn 93
9 p art 92
--4:动态PIVOT行转列
DECLARE @sql_str VARCHAR(8000)
DECLARE @sql_col VARCHAR(8000)
SELECT @sql_col = ISNULL(@sql_col + ',','') + QUOTENAME([Subject]) FROM [student2] GROUP BY [Subject]
SET @sql_str = '
SELECT * FROM (
SELECT [Name],[Subject],[score] FROM [student2]) p PIVOT
(SUM([Score]) FOR [Subject] IN ( '+ @sql_col +') ) AS pvt
ORDER BY pvt.[Name]'
PRINT (@sql_str)
EXEC (@sql_str)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步