读书人

如何用一条sql语句把学生的分数都列出

发布时间: 2012-09-24 13:49:41 作者: rapoo

怎么用一条sql语句把学生的分数都列出来
数据库如下
name subject score
云天河 语文 59
云天河 数学 98
云天河 英语 65
柳梦璃 语文 95
柳梦璃 数学 85
柳梦璃 英语 93
韩菱纱 语文 80
韩菱纱 数学 97
韩菱纱 英语 79


怎么用一条sql语句查出他们的成绩,结果如下形式:
姓名 语文 数学 英语
云天河 59 98 65
柳梦璃 95 85 93
韩菱纱 80 97 79

[解决办法]

SQL code
select name, sum(decode(subject,'语文', score,null)) "语文",sum(decode(subject,'数学', score,null)) "数学",sum(decode(subject,'英语', score,null)) "英语"from testTable tgroup by name;
[解决办法]
相关子查询法
设你的表名是tablename

select name,
(select score from tablename where name = t.name and subject = '语文'),
(select score from tablename where name = t.name and subject = '数学'),
(select score from tablename where name = t.name and subject = '英语')
from tablename t
group by name;


你试试看,我没做测试。
[解决办法]
select name,
sum(decode(subject,'语文', score,0)) 语文,
sum(decode(subject,'数学', score,0)) 数学,
sum(decode(subject,'英语', score,0)) 英语
from userTable t
group by name;

读书人网 >J2EE开发

热点推荐