SQL 行轉列的運用

適用場景:須要將行數據轉換成列數據spa

例子:code

如今有一個學生的成績表blog

 

可是咱們須要將每一個學生的成績聚集到一條數據上,這時候就能夠用到行轉列。數學

代碼以下class

1、不使用  PIVOTim

1 SELECT  
2         MAX('學生'+CONVERT(NCHAR(10),[Stu_ID])) AS 學生
3        ,MAX(CASE WHEN Course='語文' THEN ISNULL(Score,0) ELSE 0 END) AS 語文成績
4        ,MAX(CASE WHEN Course='數學' THEN ISNULL(Score,0) ELSE 0 END) AS 數學成績
5        ,MAX(CASE WHEN Course='英語' THEN ISNULL(Score,0) ELSE 0 END) AS 英語成績
6        ,CONVERT(DECIMAL(4,1),ROUND(AVG(Score),1))  AS 平均成績
7   FROM [EFDemo].[dbo].[Table_1] 
8   GROUP BY Stu_ID

2、使用 PIVOT數據

   SELECT * FROM [EFDemo].[dbo].[Table_1]  AS P PIVOT(MAX(P.Score) FOR P.Course IN ([語文],[數學],[英語]) AS T

 

轉換後查詢到的結果集查詢

相關文章
相關標籤/搜索