使用PIVOT运算符实现交叉表

来源:互联网 发布:网络精灵国语版 编辑:程序博客网 时间:2024/05/01 14:15
GOif exists(select * from INFORMATION_SCHEMA.TABLES where table_name='tb_cs_1')drop table tb_cs_1GOcreate table tb_cs_1(学生姓名 varchar(29),学生学科 varchar(20),成绩 float)GOinsert into tb_cs_1 values('张红','语文','80')insert into tb_cs_1 values('张红','数学','90')insert into tb_cs_1 values('张红','外语','85')insert into tb_cs_1 values('李燕','语文','80')insert into tb_cs_1 values('李燕','数学','85')insert into tb_cs_1 values('李燕','外语','92')insert into tb_cs_1 values('范二','语文','81')insert into tb_cs_1 values('范二','数学','83')insert into tb_cs_1 values('范二','外语','87')GOselect 学生姓名,a.[语文] as 语文,a.[数学] as 数学,a.[外语] as 外语from tb_cs_1 pivot(sum(成绩) for 学生学科 in(语文,数学,外语))as agoselect 学生姓名,  sum(case 学生学科 when '语文'then 成绩 end)as 语文,  sum(case 学生学科 when '数学'then 成绩 end)as 数学,  sum(case 学生学科 when '外语'then 成绩 end)as 外语  from tb_cs_1 group by 学生姓名  

 
原创粉丝点击