sql 行列转换

CREATE TABLE #Student (  
 
[学生编号] INT IDENTITY(1, 1) PRIMARY KEY,  
 
[姓名] NVARCHAR(20),  
 
[性别] NVARCHAR(1),  
 
[所属班级] NVARCHAR(20)  
 
); 

INSERT INTO #Student (  
 
[姓名], [性别], [所属班级]  
 
)  
 
SELECT '李妹妹', '女', '初一 1班' UNION ALL  
 
SELECT '泰强', '男', '初一 1班' UNION ALL  
 
SELECT '泰映', '男', '初一 1班' UNION ALL  
 
SELECT '何谢', '男', '初一 1班' UNION ALL  
 
SELECT '李春', '男', '初二 1班' UNION ALL  
 
SELECT '吴歌', '男', '初二 1班' UNION ALL  
 
SELECT '林纯', '男', '初二 1班' UNION ALL  
 
SELECT '徐叶', '女', '初二 1班' UNION ALL  
 
SELECT '龙门', '男', '初三 1班' UNION ALL  
 
SELECT '小红', '女', '初三 1班' UNION ALL  
 
SELECT '小李', '男', '初三 1班' UNION ALL  
 
SELECT '小黄', '女', '初三 2班' UNION ALL  
 
SELECT '旺财', '男', '初三 2班' UNION ALL  
 
SELECT '强强', '男', '初二 1班'; 

SELECT  '班级总人数:' AS [总人数] ,
        [初一 1班] ,
        [初一 2班] ,
        [初二 1班] ,
        [初三 1班] ,
        [初三 2班]
FROM    ( SELECT    [所属班级] AS [班级] ,
                    [学生编号]
          FROM      Student
        ) AS [SourceTable] PIVOT ( COUNT([学生编号]) FOR [班级] IN ( [初一 1班],
                                                              [初一 2班], [初二 1班],
                                                              [初三 1班], [初三 2班] ) ) AS [PivotTable]; 

  

原文地址:https://www.cnblogs.com/hbsfgl/p/6937827.html