行列转化问题:如何用SQL将表A转化为表B?

[复制链接]
查看11 | 回复9 | 2013-8-8 14:01:23 | 显示全部楼层 |阅读模式
表A:
姓名 课程 成绩
张三 英语 92
张三 数学 75
张三 语文 85
李四 语文 87
李四 物理 83
王五 英语 98
……
表B:
姓名 英语 数学 语文 物理
张三 92 7585
李四
87 83
王五 98
回复

使用道具 举报

千问 | 2013-8-8 14:01:23 | 显示全部楼层
没有考虑过?
回复

使用道具 举报

千问 | 2013-8-8 14:01:23 | 显示全部楼层
create table t(
name varchar2(20),
course varchar2(20),
result number
)

insert into t values('Scott','English',60);
insert into t values('Scott','語文',80);
insert into t values('Scott','數學',70);
insert into t values('司各特','語文',61);
insert into t values('司各特','English',71);
insert into t values('司各特','數學',81);
insert into t values('哥斯拉','English',82);
insert into t values('哥斯拉','語文',92);
insert into t values('哥斯拉','數學',00);
select name ,
sum(decode(course,'English',result,0)),
sum(decode(course,'語文',result,0)),
sum(decode(course,'數學',result,0))
from t
group by name

原谅我,我不会用PHP COEDE
回复

使用道具 举报

千问 | 2013-8-8 14:01:23 | 显示全部楼层
原帖由 zhangweicai74 于 2008-1-22 09:25 发表

原來如此,怪不得
回复

使用道具 举报

千问 | 2013-8-8 14:01:23 | 显示全部楼层
如果是11G,可以考虑用ORACLE自带的PIVOT函数,来实现行转列。
回复

使用道具 举报

千问 | 2013-8-8 14:01:23 | 显示全部楼层
原帖由 csy020608 于 2008-1-22 16:23 发表
如果是11G,可以考虑用ORACLE自带的PIVOT函数,来实现行转列。


在9i中如何實現呢?
回复

使用道具 举报

千问 | 2013-8-8 14:01:23 | 显示全部楼层
ITPUB论坛 » 搜索
[url=]总数53[/url][url=]第1页/共3页[/url][url=]1[/url]23??

回复

使用道具 举报

千问 | 2013-8-8 14:01:23 | 显示全部楼层
^^ 连题目都很熟悉
回复

使用道具 举报

千问 | 2013-8-8 14:01:23 | 显示全部楼层
使用sum(case....结构
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行