oracle数据库关于把表的行变成列 10

姓名数学语文1231张飞6061姓名张飞赵云庞统2赵云8085变成数学6080993庞统9980语文618580... 姓名 数学 语文 1 2 3
1 张飞 60 61 姓名 张飞 赵云 庞统
2 赵云 80 85 变成 数学 60 80 99
3 庞统 99 80 语文 61 85 80
展开
 我来答
fengfeidw
2012-02-13
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
姓名 数学 语文 姓名 张飞 赵云 庞统
张飞 60 61 数学 60 80 99
赵云 80 85 变成 语文 61 85 80
庞统 99 80
而且第一行为列名,不是表中的数据,这样的话
也就是第一个表下面三行的数据,变成第二个表下面两行的数据
这样还是可以的
追问
来个
追答
明天给你回复
今天已经准备关机睡觉了

表原始数据:
SELECT * FROM temp;
XINGM YUWEN SHUXUE
张 60 61
赵 80 81
庞 90 91

SQL:
SELECT '语文' kemu,
SUM(decode(t.xingm, '张', t.yuwen, 0)) 张,
SUM(decode(t.xingm, '赵', t.yuwen, 0)) 赵,
SUM(decode(t.xingm, '庞', t.yuwen, 0)) 庞
FROM temp t
UNION
SELECT '数学' ,
SUM(decode(t.xingm, '张', t.shuxue, 0)) ,
SUM(decode(t.xingm, '赵', t.shuxue, 0)) ,
SUM(decode(t.xingm, '庞', t.shuxue, 0))
FROM temp t
查询结果:
KEMU 张 赵 庞
数学 61 81 91
语文 60 80 90
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
娜向雅8742
2012-02-12
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
删掉重建,类型要换成字符型,这样做的后果是不可想象的,实际上,按你的改了后这个数据库已经没有意义了
更多追问追答
追问
数据库有没有意义无所谓,我要的是这个改变的代码,主要是面试用的。
追答
设原表为table1,新建表table2,取table1所有的id为table2字段名,类型为字符,取table1字段“姓名”下所有数据,全部转换为字符类型,插入table2,增加第一项为‘姓名’,去table1字段“数学”..同上类似,直至结束,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Treelab
2021-04-14
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

本节视频我们来聊一聊如何添加数据表的行与列。Treelab 官网:www.treelab.com.cn

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9566112
2012-02-13
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
面试的话去看一些关于sql行转列的知识点吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qdgscy
2012-02-12
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
同意一楼说法。
追问
同上的回答
追答
你是要算分么?算分的话可以这样子写:
select 姓名,数学+语文 from table ;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式