oracle的列转行问题
来源:互联网 发布:淘宝海外禁运限运物品 编辑:程序博客网 时间:2024/04/30 11:26
Oracle的列转行问题
Oracle中使用语句将行数据转换称不同的列表示,或者将不同的列数据写到同一列的不同行上的行列转换问题是一个非常传统的话题。
网络上流传了很多将行数据转换称列数据的方法和应用实例,一般通过decode或者case函数与聚合函数联合实现功能,这里就不再重复。
日前本人在一个偶然的应用中用到了一个需要将列数据转换为行数据的问题。搜索了很久没有发现很合适的方法。网络一般推荐使用union all实现。这样的一个重要问题在于会造成对数据表的重复访问,性能是个重要问题。
基于此,作者设想了另外一种实现可能性。实践证明,这种方法有效提供了查询性能。
create table f_distribution(
f1 varchar2(200),
qty1 int,
qty2 int,
qty3 int
);
insert into f_distribution(f1,qty1,qty2,qty3) values('zhanglei',1,2,3);
insert into f_distribution(f1,qty1,qty2,qty3) values('lixian',1,2,3);
insert into f_distribution(f1,qty1,qty2,qty3) values('zhoubin',1,2,3);
insert into f_distribution(f1,qty1,qty2,qty3) values('zhengtong',1,2,3);
select * from f_distribution
select a.f1,b.fid,
decode(b.fid,'数据1',a.qty1,
'数据2',a.qty2,
'数据3',a.qty3
)
from f_distribution a,
(
select '数据1' fid from dual
union all
select '数据2' fid from dual
union all
select '数据3' fid from dual
) b
- oracle的列转行问题
- Oracle 简单的列转行
- 关于oracle 拆分字符串加列转行的问题
- 列转行的Oracle SQL实例
- ORACLE 列转行和行转列的SQL
- Oracle中实现列转行的实例
- Oracle的列转行函数:listagg()
- Oracle的列转行函数:LISTAGG()
- Oracle的行转列和列转行
- ORACLE 列转行
- 行转列.列转行 oracle
- Oracle列转行
- oracle 行转列,列转行
- 【ORACLE】行转列,列转行
- oracle 列转行
- oracle 行转列 列转行
- oracle 行转列,列转行
- ORACLE sql 列转行
- 1015 Jury Compromise 解题报告
- xmlhttp显示乱码问题
- 利用Apache的CLI来处理命令行
- Oracle datatabase express edition
- CString和普通类型之间的转换
- oracle的列转行问题
- 怎样判断一个文件存在(vc)
- classpath 简介
- 如何看待算法
- iLife '09测评
- jquery
- 爱情智慧:佛与石头的六个经典对话
- java定时器的使用(Timer)
- jQuery应用技巧总结