列转行-行列转换
2013-01-06 09:56
211 查看
有多种实现方式:
wmsys.wm_concat函数
也可以用decode函数实现.
11g可以 使用pivot
存储过程实现
eg:
我现在的表如下:
产品名称 销售额 季度
奶酪 50 第一季度
奶酪 60 第二季度
啤酒 50 第二季度
啤酒 80 第四季度
。。。
。。。
想转换成如下格式
产品名称 第一季度销售额 第二季度销售额 第三季度销售额 第四季度销售额
奶酪 50 60 0 0
啤酒 0 50 0 80
答案:
01.最佳答案oracle下可以用函数decode处理:
02.
03.select 产品名称,
04.sum(decode(季度,'第一季度',销售额,0)) 第一季度销售额,
05.sum(decode(季度,'第二季度',销售额,0)) 第二季度销售额,
06.sum(decode(季度,'第三季度',销售额,0)) 第三季度销售额,
07.sum(decode(季度,'第四季度',销售额,0)) 第四季度销售额,
08.from 表名
09.group by 产品名称;
或者:
select 产品名称, wmsys.wm_concat(第一季度销售额),wmsys.wm_concat(第二季度销售额),wmsys.wm_concat(第三季度销售额),wmsys.wm_concat(第四季度销售额) from test group by 产品名称
其他方式大家自己去研究.
下次会谈一下行转列的问题.
wmsys.wm_concat函数
也可以用decode函数实现.
11g可以 使用pivot
存储过程实现
eg:
我现在的表如下:
产品名称 销售额 季度
奶酪 50 第一季度
奶酪 60 第二季度
啤酒 50 第二季度
啤酒 80 第四季度
。。。
。。。
想转换成如下格式
产品名称 第一季度销售额 第二季度销售额 第三季度销售额 第四季度销售额
奶酪 50 60 0 0
啤酒 0 50 0 80
答案:
01.最佳答案oracle下可以用函数decode处理:
02.
03.select 产品名称,
04.sum(decode(季度,'第一季度',销售额,0)) 第一季度销售额,
05.sum(decode(季度,'第二季度',销售额,0)) 第二季度销售额,
06.sum(decode(季度,'第三季度',销售额,0)) 第三季度销售额,
07.sum(decode(季度,'第四季度',销售额,0)) 第四季度销售额,
08.from 表名
09.group by 产品名称;
或者:
select 产品名称, wmsys.wm_concat(第一季度销售额),wmsys.wm_concat(第二季度销售额),wmsys.wm_concat(第三季度销售额),wmsys.wm_concat(第四季度销售额) from test group by 产品名称
其他方式大家自己去研究.
下次会谈一下行转列的问题.
相关文章推荐
- sql 行专列 列转行 普通行列转换
- SQL中PIVOT 行列转换;UNPIVOT列转行
- sql 行专列 列转行 普通行列转换
- tsql 行列转换--列转行,根据特定的字符分拆列值
- sql 行专列 列转行 普通行列转换
- sql 行专列 列转行 普通行列转换
- SQL Server 2005之PIVOT/UNPIVOT行列转换(行转列、列转行)
- 行列转换(列转行)
- 【数据库】SQL经典面试题 - 行列转换二 - 列转行
- oracle中的行列转换(一 列转行 pivot)
- (转)sql 行专列 列转行 普通行列转换
- 03. 行列转换写法小结
- SQL行列转换实战
- 行列转换
- oracle 行列转换 pivot unpivot (本文来自官网)
- Oracle 10g 行列转换(从SQL Server 2000迁移)
- SQL 2005 行列转换 实例(函数PIVOT&UNPIVOT)
- SQL技巧之行列转换
- Oracle 中使用 Regexp_substr 和 Connect By 来根据分隔符进行列转行操作示例
- SQL 行列转换