在实际做项目的过程中,遇到一个问题,以前没有做过,想请教大家帮帮忙
现在有一个表,样式如下
COLUMN1,COLUMN2,COLUMN3,COLUMN4,COLUMN5是字段名
c1Value1,c2Value1,c3Value1,c4Value1,c5Value1是第一行数据值
c1Value2,c2Value2,c3Value2,c4Value2,c5Value2是第二行数据值
现在我想用一个视图把这个表旋转-90度,形成以下效果
这个效果该如何实现,请大家帮帮忙,感激不尽!
7 个解决方案
#1
Unpivot函数
#2
这个是干啥用的,如果是报表中使用的话,大可在报表中去实现
大多数报表工具都可以选择横向扩展数据或纵向扩展数据
从数据库这边能解决,可是比较麻烦,
使用存储过程动态拼接语句创建视图,然后从视图中进行查询
相比较而言,在报表中实现可能更容易一点
大多数报表工具都可以选择横向扩展数据或纵向扩展数据
从数据库这边能解决,可是比较麻烦,
使用存储过程动态拼接语句创建视图,然后从视图中进行查询
相比较而言,在报表中实现可能更容易一点
#3
没有别的办法了吗?
#4
再次求教解决方法,请指教!
#5
wm_concact 列转行,效果比你要的差一点
#6
如果是11g以上,可以用2楼的办法,具体语句如下 :
select * From table
unpivot
(
col_val --指定c1Value1,c2Value1。。。。的列名
FOR col_desc --定义COLUMN1,COLUMN2.。。。的列名
IN (COLUMN1,COLUMN2,COLUMN3,COLUMN4,COLUMN5)
);
select * From table
unpivot
(
col_val --指定c1Value1,c2Value1。。。。的列名
FOR col_desc --定义COLUMN1,COLUMN2.。。。的列名
IN (COLUMN1,COLUMN2,COLUMN3,COLUMN4,COLUMN5)
);
#1
Unpivot函数
#2
这个是干啥用的,如果是报表中使用的话,大可在报表中去实现
大多数报表工具都可以选择横向扩展数据或纵向扩展数据
从数据库这边能解决,可是比较麻烦,
使用存储过程动态拼接语句创建视图,然后从视图中进行查询
相比较而言,在报表中实现可能更容易一点
大多数报表工具都可以选择横向扩展数据或纵向扩展数据
从数据库这边能解决,可是比较麻烦,
使用存储过程动态拼接语句创建视图,然后从视图中进行查询
相比较而言,在报表中实现可能更容易一点
#3
没有别的办法了吗?
#4
再次求教解决方法,请指教!
#5
wm_concact 列转行,效果比你要的差一点
#6
如果是11g以上,可以用2楼的办法,具体语句如下 :
select * From table
unpivot
(
col_val --指定c1Value1,c2Value1。。。。的列名
FOR col_desc --定义COLUMN1,COLUMN2.。。。的列名
IN (COLUMN1,COLUMN2,COLUMN3,COLUMN4,COLUMN5)
);
select * From table
unpivot
(
col_val --指定c1Value1,c2Value1。。。。的列名
FOR col_desc --定义COLUMN1,COLUMN2.。。。的列名
IN (COLUMN1,COLUMN2,COLUMN3,COLUMN4,COLUMN5)
);
#7
可以使用oracle列变行的技巧:
http://blog.163.com/magicc_love/blog/static/185853662201371481247696/