一个表名为cjb(成绩表):
姓名 科目 成绩
张三 语文 20
张三 数学 30
张三 英语 50
李四 语文 70
李四 数学 60
李四 英语 90通过写sql语句把它变成:
姓名 语文 数学 英语
张三 20 30 50
李四 70 60 90
姓名 科目 成绩
张三 语文 20
张三 数学 30
张三 英语 50
李四 语文 70
李四 数学 60
李四 英语 90通过写sql语句把它变成:
姓名 语文 数学 英语
张三 20 30 50
李四 70 60 90
select 姓名,sum(decode(科目,'语文',成绩)) 语文,sum(decode(科目,'数学',成绩)) 数学,sum(decode(科目,'英语',成绩)) 英语 from cjb group by 姓名;
---------- ---------- ----------
jim math 90
jim eng 70
tom eng 75
tom chs 95
tom math 75
jim chs 756 rows selected.SQL> select name,
2 sum(decode(subject,'chs',score)) chs,
3 sum(decode(subject,'math',score)) math,
4 sum(decode(subject,'eng',score)) eng
5 from cjb
6 group by name;NAME CHS MATH ENG
---------- ---------- ---------- ----------
tom 95 75 75
jim 75 90 70
--这里只是把你的汉字语文,英语,数学换为了chs,eng,math而已 需要的话你再修改一下就可以了