一个表名为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
解决方案 »
- 求解SQL
- 求oracle入门书???
- ORA-01033的问题
- 如何在存储过程中实现connect user/userpassword@connectstring功能
- 存储过程包的一个存储过程,PL/SQL中能编译,测试窗口能执行,但调试时提示'通信通道的文件结束',此时没有断网,session中无执行进程,无锁表.
- 请教一个问题 .net连接oracle时本机上不装oracle客户端程序能连吗?如果能又该怎么连?
- 关于插入数据!
- 关于两个连接方式的区别(conn user/pass 与conn user/pass@SID)。
- 权限的问题
- 关于通配符的查询
- 请问一个简单的oracle的问题
- 为什么我不能成功操作文件
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而已 需要的话你再修改一下就可以了