Oracle关于竖表转横表的问题

Clam 2010-08-29 09:31:33
表一
Name | jason
-----------------
Manager | yyy
-----------------
region | aaa
-----------------
Code | 123
-----------------
Level | 2
-----------------
Status | 2

表二
Name | Manager | region | Code | Level | Status
----------------------------------------------------
jason| yyy | aaa 1 | 23 | 2 | 2
表一的字段为 Name,jason ,其他下面对应的为数据 表二的字段为 Name,Manager,region,Code,Level,Status,其他下面为对应的数据 问题, 如何将表一的数据和字段 扭转成 表二的数据和字段
...全文
345 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Clam 2010-08-30
  • 打赏
  • 举报
回复
高手啊。谢谢了。结贴。发分
gelyon 2010-08-30
  • 打赏
  • 举报
回复
根据你测试数据:
insert into b
select 'jason' aname,
Max(decode(aname,'Manager',jason)) Manager ,
Max(decode(aname,'region',jason)) region,
Max(decode(aname,'code',jason)) code,
Max(decode(aname,'alevel',jason)) alevel,
Max(decode(aname,'status',jason)) status
from a GROUP BY 1;
Clam 2010-08-30
  • 打赏
  • 举报
回复

这是表一的结构
create table a
(
aname varchar2(20),
jason varchar2(20)
);
insert into a values('Manager','yyy');
insert into a values('region','aaa');
insert into a values('code','123');
insert into a values('alevel','2');
insert into a values('status','2');
select * from a;
这是表二的结构
create table b
(
aname varchar2(20),
manager varchar2(20),
region varchar2(20),
code varchar2(20),
alevel varchar2(20),
status varchar2(20)
);
现在问题就是如何把表一的数据插入表二 (表二数据正确的应该如下:)
insert into b values('jason','yyy','aaa','123','2','2');

select * from b;

HuaIng 2010-08-29
  • 打赏
  • 举报
回复
[Quote=引用楼主 yuanpan365 的回复:]
表一
Name | jason
-----------------
Manager | yyy
-----------------
region | aaa
-----------------
Code | 123
-----------------
Level | 2
-----------------
Status | 2

表二
Name | Ma……
[/Quote]

正解。
hyl04 2010-08-29
  • 打赏
  • 举报
回复
select name,
sum(decode(name,'Manager',yyy,null)) Manager,
sum(decode(name,'region',aaa,null)) region,
sum(decode(name,'Code',123,null)) Code,
sum(decode(name,'Level',2,null)) Level,
sum(decode(name,'Status',2,null)) Status
from 表1
group by name;
不知道LZ是不是这个意思?
hyl04 2010-08-29
  • 打赏
  • 举报
回复
LZ这个表述有点不清楚哎!把表有哪些字段,两个表显示的效果是什么样的写清楚!
虫洞 2010-08-29
  • 打赏
  • 举报
回复
只有一行数据?
gelyon 2010-08-29
  • 打赏
  • 举报
回复
select 'jason' name,
decode(name,'Manager',jason) Manager ,
decode(name,'region',jason) region,
decode(name,'Code',jason) Code,
decode(name,'Level',jason) Level,
decode(name,'Status',jason) Status
from 表一;

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧