有多种实现方式:
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行列转换扩展 明源内部学习资料
mysql行转列(将同一列下的不同内容的几行数据,转换成几列显示)、列转行、行列汇总、合并显示
NULL 博文链接:https://xkxjy.iteye.com/blog/602387
ORACLE 行列转换,ORACLE,行列转换
DB2 SQL 通过函数(CONCAT/POSSTR/LOCATE)实现行转列,列转行 可以按照标点把多列转换为一行,多行转换为一列
行列转换工具,EXCEL行列转换小工具,用于行转列或 列转行
sql试题及答案,sql 行列转换,sql存储过程实例
oracle的行列转换例子,行转列,列转行。主要针对oracle10g
1. 列转行 2. 行转列 3. 多列转换成字符串 4. 多行转换成字符串 5. 字符串转换成多列 6. 字符串转换成多行
Oracle中使用语句将行数据转换称不同的列表示,或者将不同的列数据写到同一列的不同行上的行列转换问题是一个非常传统的话题。 网络上流传了很多将行数据转换称列数据的方法和应用实例,一般通过decode或者case函数...
行列转换包括以下六种情况: *列转行 *行转列 *多列转换成字符串 *多行转换成字符串 *字符串转换成多列 *字符串转换成多行 内有6种情况的详细分析与SQL
行列转换包括以下六种情况: 1) 列转行 2) 行转列 3) 多列转换成字符串 4) 多行转换成字符串 5) 字符串转换成多列 6) 字符串转换成多行
t-sql编程实现静态和动态的行转列、列转行代码
在c#后台实现 行转列的显示功能,这样就是可以不借助sql数据库的查询分析器功能也可以实现行转列功能的实现了
NULL 博文链接:https://hb-keepmoving.iteye.com/blog/803348
行列转换包括以下六种情况: 1. 列转行 2. 行转列 3. 多列转换成字符串 4. 多行转换成字符串 5. 字符串转换成多列 6. 字符串转换成多行
分别讲述了SQLServer和Oracle行列转换的两种方式,可以通过SQL实现,也可通过关键字搞定; 还可以看到Oracle与SQLServer关键字用法的差异。
常见的数据库面试关于行转列列转行的操作,方便你的面试,经常考到的
C# 实现DataTable数据的excel导出方法简单包装,行转列的实现