create table tab (
counter varchar(20), -- 参加考试人数
subject varchar(20), -- 科目
class varchar(20) -- 班级
)表数据:counter subject class
36 英语 一班
44 英语 二班
44 数学 二班
33 语文 一班
39 语文 三班转换后: 一班 二班 三班
英语 36 44 0
数学 0 44 0
语文 33 0 39
解决方案 »
- 安装oracle10g for CentOS5.4
- lsnrctl status命令的解释
- RMAN备份归档日志失败?
- 有关oracle
- 数据转换问题
- 特急:关于oracle http server 的问题,请高手进入解答,谢谢!
- 如何得到游标中的记录数
- 如何用oracle817导出815的数据库?--急!!!
- 我在having子句中使用times=max(times)为什么不好用????
- 创建数据库ORA-12203: TNS:unable to connect to destination
- 如何将oracle表转换成Access文本文件
- apex3.2 创建后执行apex_epg_config失败, apex无法登录管理界面
应该是decode(class, '一班', counter, 0) 而不是 decode(class, '一班', 0, counter)
嘻嘻。
max(decode(class,'一班',counter,0))一班,
max(decode(class,'二班',counter,0))二班,
max(decode(class,'三班',counter,0))三班
from tab
group by subject
select subject,
MAX(case class when '一班' THEN counter ELSE 0 END ) AS '一班',
MAX(case class when '二班' THEN counter ELSE 0 END ) AS '二班',
MAX(case class when '三班' THEN counter ELSE 0 END ) AS '三班'from tab Group by subjectORACLE:
select subject,
sum(decode(class, '一班', counter,0)) "一班",
sum(decode(class, '二班', counter,0)) "二班",
sum(decode(class, '三班', counter,0)) "三班"
from tab group by subject