IF object_id('tempdb..#T') IS NOT NULL DROP TABLE #T IF object_id('tempdb..##OMS_ColorSize201407231125') IS NOT NULL DROP TABLE ##OMS_ColorSize201407231125 --建一个要横排的列值的临时表 SELECT ColorID INTO #T FROM SD_Web_Exhibition_StylesColor GROUP BY ColorID --将转列的值拼接成一个字符串 DECLARE @SQL NVARCHAR(MAX) = N''; SET @SQL = STUFF((SELECT N',' + QUOTENAME(ColorID) FROM #T FOR XML PATH ( '' )), 1, 1, N''); --行转列sql: 会根据BeginQty转ColorID列,其他列自动group by SET @SQL = N'Select * into ##OMS_ColorSize201407231125 from SD_Web_Exhibition_StylesColor pivot(max(BeginQty) for ColorID in(' + @SQL + N')) as p '; --执行 EXEC(@SQL) SELECT * FROM ##OMS_ColorSize201407231125 DROP TABLE ##OMS_ColorSize201407231125
sql_行转列
猜你喜欢
转载自zheyiw.iteye.com/blog/2095374
今日推荐
周排行