--创建行转列表及插入数据 create table tb_RowConvertToColumn ( username nvarchar(100) null, course nvarchar(100) null, score numeric(10,2) null ) insert into tb_RowConvertToColumn(username,course,score) values('张三','语文',82) insert into tb_RowConvertToColumn(username,course,score) values('张三','数学',85) insert into tb_RowConvertToColumn(username,course,score) values('张三','外语',90) insert into tb_RowConvertToColumn(username,course,score) values('李四','语文',86) insert into tb_RowConvertToColumn(username,course,score) values('李四','数学',82) insert into tb_RowConvertToColumn(username,course,score) values('李四','外语',92) insert into tb_RowConvertToColumn(username,course,score) values('王五','语文',82) insert into tb_RowConvertToColumn(username,course,score) values('王五','数学',94) insert into tb_RowConvertToColumn(username,course,score) values('王五','外语',82) --1.静态sql行转列,该sql指定了转换的列头 select username '姓名', MAX(case course when '语文' then score else 0 end) '语文', MAX(case course when '数学' then score else 0 end) '数学', MAX(case course when '外语' then score else 0 end) '外语' from tb_RowConvertToColumn group by username order by username