Chinaunix首页 | 论坛 | 博客
  • 博客访问: 866300
  • 博文数量: 215
  • 博客积分: 10062
  • 博客等级: 上将
  • 技术积分: 2235
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-01 13:21
文章分类

全部博文(215)

文章存档

2012年(1)

2011年(24)

2009年(16)

2008年(91)

2007年(83)

我的朋友

分类:

2008-03-24 16:15:48

已知一个表的结构为:
姓名 科目 成绩
张三 语文 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;
阅读(771) | 评论(0) | 转发(0) |
0

上一篇:统计流量

下一篇:Java程序验证Email

给主人留下些什么吧!~~