当前位置:  数据库>oracle

Oracle 11g行列转换之PIVOT

    来源: 互联网  发布时间:2017-05-01

    本文导语: 本文对Oracle 11g的行列转换操作的简单实例,供初学者参考。 现有问题如下: 问题描述:  Table1  Id Name  1 Taylor  2 Jim      Table2  FId value attr  1 23 age  1 boy sex  2 26 age  2 boy sex Table1 Id 是主键,Table2 的FId 是外键,对应Table1 的...

本文对Oracle 11g的行列转换操作的简单实例,供初学者参考。

现有问题如下:

问题描述:
  Table1
  Id Name
  1 Taylor
  2 Jim
   
  Table2
  FId value attr
  1 23 age
  1 boy sex
  2 26 age
  2 boy sex










Table1 Id 是主键,Table2 的FId 是外键,对应Table1 的主键

要查出age大于24,且sex 是boy 的人的name  
结果是:
Name
Jim


创建表病插入数据,其中TABLE1为源表,TABLE2为目标表,脚本如下:

create table table2(  
 fid number(12),  
 value varchar2(10),  
 attr varchar2(10)  
);  
  
insert into table2 values(1,'23','age');  
insert into table2 values(1,'boy','sex');  
insert into table2 values(2,'26','age');  
insert into table2 values(2,'boy','sex');  
  
  
create table table1(  
  id number(12),  
  name varchar2(20)  
);  
          
insert into table1 values(1,'Taylor');   
insert into table1 values(2,'Jim');  
如下语句可实现表TABLE1的行列转换:


















select *  
  from table2 pivot(max(value) as attr for(attr) in('age' as age,  
                                                    'sex' as sex)); 

最后如下语句即可解答开始的问题:

with pivot_table2 as(                                                      
select *  
  from table2 pivot(max(value) as attr for(attr) in('age' as age,  
                                                    'sex' as sex)))  
select t1.* from pivot_table2 pt,table1 t1  
where pt.fid=t1.id  
and pt.age_attr>24 and pt.sex_attr='boy' 






    
 
 

您可能感兴趣的文章:

  • 从Oracle 表格行列转置说起第1/2页
  • 在oracle里如何将String转换成Date?????
  • 请问:ORACLE中的数据取出来后,需不需要进行一定的转换才能变为C语言的数据类型啊?
  • ORACLE 毫秒与日期的相互转换示例
  • 用java怎样实现oracle数据库表和excel数据表的转换
  • Oracle与FoxPro两数据库的数据转换步骤
  • oracle SCN跟TIMESTAMP之间转换
  • Oracle下时间转换在几种语言中的实现
  • 关于tomcat4.0.1+JDK1.3+ORACLE+JDBC中字符编码的转换问题。
  • MySQL转换Oracle的需要注意的七个事项
  • MySQL数据库向Oracle转换时注意若干问题
  • Oracle Number型数值存储与转换的实现详解
  • 讲解Oracle中的Clob与String类型转换
  • 将mysql转换到oracle必须了解的50件事
  • oracle中to_date详细用法示例(oracle日期格式转换)
  • ORACLE常用数值函数、转换函数、字符串函数
  • Oracle CBO几种基本的查询转换详解
  • Oracle to_char 日期转换字符串语句分享
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,