首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

求算法,怎么将纵向的数据表变成横向?在线

2012-01-22 
求算法,如何将纵向的数据表变成横向??急,在线数据表A:列为FormID,FieldName,FieldDate,一个FormID下有多个

求算法,如何将纵向的数据表变成横向??急,在线
数据表A:   列为FormID,FieldName,FieldDate,一个FormID下有多个FielName
如:
FormID   FieldName     FieldDate
1             编号               2
1             发起人           张三
1             发起时间       2007-1-12
1             内容               你好
数据表B:列为FormID,CreateDate,CreateName

现在想要一个视图或存储过程将AB表根据FormID拉成横向显示,如
FormID   Code   Name     Date               Content
1             2         张三     2007-1-12     你好
2             3         里司     2007-1-13     我好

请问如何表达???
谢谢


[解决办法]
确定只有 5 column?

select FormID, sum(decode(FieldName, 编号, FieldDate, null)) Code,
sum(decode(FieldName, 发起人, FieldDate, null)) Name,
sum(decode(FieldName, 发起时间, FieldDate, null)) Date,
sum(decode(FieldName, 内容, FieldDate, null)) Content
from A
group by FormID
[解决办法]
select FormID, sum(decode(FieldName, 编号, FieldDate, null)) Code,
sum(decode(FieldName, 发起人, FieldDate, null)) Name,
sum(decode(FieldName, 发起时间, FieldDate, null)) Date,
sum(decode(FieldName, 内容, FieldDate, null)) Content
from A
group by FormID;

多列的话,按照格式自行添加即可

热点排行