已知一个表的结构为:
姓名 科目 成绩
张三 语文 20
张三 数学 30
张三 英语 50
李四 语文 70
李四 数学 60
李四 英语 90
怎样通过select语句把他变成以下结构:
姓名 语文 数学 英语
张三 20 30 50
李四 70 60 90
问题补充:二楼的方法的确不错,还有没有别的方法,比如利用子查询。
create table tt
(
name varchar(20),
classes varchar(30),
recoder int
)
insert into tt values('张三','语文',20)
insert into tt values('张三','数学',30)
insert into tt values('张三','英语',20)
insert into tt values('李四','语文',20)
insert into tt values('李四','数学',30)
insert into tt values('李四','英语',20)
select * from tt
select name as '姓名', max(
case tt.classes when '语文'
then tt.recoder else 0 end) as '语文',
max(case tt.classes when '数学'
then tt.recoder else 0 end) as '数学',
max(case tt.classes when '英语'
then tt.recoder else 0 end) as '英语'
from tt group by name;
阅读(812) | 评论(0) | 转发(0) |