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 展开
1 张飞 60 61 姓名 张飞 赵云 庞统
2 赵云 80 85 变成 数学 60 80 99
3 庞统 99 80 语文 61 85 80 展开
5个回答
展开全部
姓名 数学 语文 姓名 张飞 赵云 庞统
张飞 60 61 数学 60 80 99
赵云 80 85 变成 语文 61 85 80
庞统 99 80
而且第一行为列名,不是表中的数据,这样的话
也就是第一个表下面三行的数据,变成第二个表下面两行的数据
这样还是可以的
张飞 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
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
删掉重建,类型要换成字符型,这样做的后果是不可想象的,实际上,按你的改了后这个数据库已经没有意义了
更多追问追答
追问
数据库有没有意义无所谓,我要的是这个改变的代码,主要是面试用的。
追答
设原表为table1,新建表table2,取table1所有的id为table2字段名,类型为字符,取table1字段“姓名”下所有数据,全部转换为字符类型,插入table2,增加第一项为‘姓名’,去table1字段“数学”..同上类似,直至结束,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
本节视频我们来聊一聊如何添加数据表的行与列。Treelab 官网:www.treelab.com.cn
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
面试的话去看一些关于sql行转列的知识点吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同意一楼说法。
追问
同上的回答
追答
你是要算分么?算分的话可以这样子写:
select 姓名,数学+语文 from table ;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询