急求一句简单的不定列转行的SQL,多谢!

急求一句简单的不定列转行的SQL,谢谢!!
本帖最后由 xiaobaiooo 于 2014-09-23 15:38:18 编辑
表的内容大概是这样:
学生名      课程名     分数
张三          语文         80
张三          数学         82
张三          英语         77
李四          语文         90
李四          数学         89
李四          英语         67

想让列转行出来的效果是:
学生名    语文   数学  英语  总分
张三        80      82     77      239
李四        90      89     67      246

忘记补充了,这个课程的名字是不定的,不知道一共有多少门课。

实在不行,简单点效果能成这样也行:
姓名   分数
张三   80,82,77
李四   90,89,67

感谢各位无私帮助!
------解决思路----------------------
由于你的课程数量不确定,因此只能利用动态语句实现
用下面语句拼接sql语句,然后把拼接的结果拿去执行
select 'select 学生名,'
------解决思路----------------------

wmsys.wm_concat('sum(decode(课程名,'''
------解决思路----------------------
课程名
------解决思路----------------------
''',分数)) as "'
------解决思路----------------------
课程名
------解决思路----------------------
'"')

------解决思路----------------------
',sum(分数) as 总分
from T
group by 学生名'
from (select distinct 课程名 from T)

------解决思路----------------------
如果是11g的话可以用pivot转换,否则就比较麻烦了,我都是在结果集或页面处理