黑马程序员技术交流社区

标题: SQL 中表格式的转换问题 [打印本页]

作者: 井路静    时间: 2011-12-23 19:35
标题: SQL 中表格式的转换问题
本帖最后由 井路静 于 2011-12-29 17:56 编辑

有这样一张表T1,如下

姓 名   科 目   成 绩
张三    语文     80
张三    数学     70
李四    语文     60
李四    数学     70

要求使用SQL语句输出如下格式

姓 名    语 文   数 学
张三      80          70
李四      60          70

请问有没有会的,帮忙做一下???
作者: 张旭    时间: 2011-12-23 22:45
我的答案分两步
第一步:
select  name,
(
case  course
when N'语文' then  score
else 0
end
) as 语文,
(
case course
when N'数学' then score
else 0                    
end  
) as 数学 into ss
from T1  
第二步:
select name,sum(数学)as 数学,sum(语文)as 语文
from ss
group by name

作者: 黄山    时间: 2011-12-25 12:33
select [name] as 姓名,
sum(case [Subject]
when N'语文' then [Score]
else 0
end
)as 语文,
sum(case [Subject]
when N'数学' then [Score]
else 0
end)
as 数学
from T1
group by [name]




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2