今天主要介绍一下Oracle行转列及列转行常见函数,下面一起来看看吧!

行列转换

pivot函数:行转列函数

语法:pivot(任一聚合函数 for 需专列的值所在列名 in (需转为列名的值));

unpivot函数:列转行函数

语法:unpivot(新增值所在列的列名 for 新增列转为行后所在列的列名 in (需转为行的列名));

执行原理:将pivot函数或unpivot函数接在查询结果集的后面。相当于对结果集进行处理。

下面主要用实验来帮助大家理解下这两个函数用法。

实验

1、准备环境create table t(t1 varchar2(10),t2 varchar2(10),t3 int);insert into t values('第一行','COL_1',12);  insert into t values('第一行','COL_2',24);insert into t values('第一行','COL_3',44);  insert into t values('第二行','COL_1',12);insert into t values('第二行','COL_2',24);  insert into t values('第二行','COL_3',44);insert into t values('第三行','COL_1',12);  insert into t values('第三行','COL_2',24);insert into t values('第三行','COL_3',44);  insert into t values('第四行','COL_1',12);insert into t values('第四行','COL_2',24);  insert into t values('第四行','COL_3',44);insert into t values('第五行','COL_1',12);  insert into t values('第五行','COL_2',24);insert into t values('第五行','COL_3',44);  insert into t values('第六行','COL_1',12);insert into t values('第六行','COL_2',24);  insert into t values('第六行','COL_3',44);insert into t values('第七行','COL_1',12);  insert into t values('第七行','COL_2',24);insert into t values('第七行','COL_3',44);  insert into t values('第八行','COL_1',12);insert into t values('第八行','COL_2',24);  insert into t values('第八行','COL_3',44);insert into t values('第九行','COL_1',12);  insert into t values('第九行','COL_2',24);insert into t values('第九行','COL_3',44);  insert into t values('第十行','COL_1',12);insert into t values('第十行','COL_2',24);  insert into t values('第十行','COL_3',44);

2、pivot函数行转列

用pivot函数进行行转列。其中用聚合函数对数据列进行求值,将t2列中的值’COL_1‘,’COL_2‘,‘COL_3’转化为列名,并为其加上别名。select * from t  pivot (sum(t3) for t2 in ('COL_1' as 第一列,'COL_2'as 第二列 ,'COL_3' as 第三列));

3、unpivot函数列转行

在原sql语句上再加上unpivot函数,将列再转为行,在unpivot函数中,aa与bb为新增的列名,分别表示由列转换为行后的数据所在的列名和数据所在的列名。select * from t pivot (sum(t3) for t2 in ('COL_1' as 第一列,'COL_2'as 第二列 ,'COL_3' as 第三列))unpivot ( aa for bb in(第一列,第二列,第三列));

详解Oracle行列转换函数--pivot函数和unpivot函数

立即下载

注册下载

oracle 总转横函数,详解Oracle行列转换函数-pivot函数和unpivot函数-多智时代相关推荐

  1. oracle调试存储过程加断点,详解Oracle调试存储过程

    详解Oracle调试存储过程 一 调试关键步骤 1.在要调试的存储过程右键,选择编辑以进行调试,截图如下: 2.点击小瓢虫,弹出调试窗口,截图如下: 3.输入7839员工编号,点击确认,进行调试,截图 ...

  2. mysql unpivot_SQL(横表和纵表)行列转换,PIVOT与UNPIVOT的区别和使用方法举例,合并列的例子...

    使用过SQL Server 2000的人都知道,要想实现行列转换,必须综合利用聚合函数和动态SQL,具体实现起来需要一定的技巧,而在SQL Server 2005中,使用新引进的关键字PIVOT/UN ...

  3. oracle 根节点函数,详解Oracle分析函数

    分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值.分析函数带有一个开窗函数over(),包含 ...

  4. ef oracle 批量更新慢_详解Oracle中多表关联批量插入、批量更新与批量删除

    概述 今天主要介绍一下Oracle数据库中多表关联批量插入.多表关联批量更新和多表关联批量删除.下面用实验来理解下~ 一.创建必须的表和序列语句 --创建部门表 dept:CREATE TABLE d ...

  5. 今晚8点,Oracle ACE男神Roger详解Oracle中为什么没有double write?

    Oracle中为什么没有double write?那支持原子写吗? -4月29日20:00 学习MySQL数据库的朋友都知道MySQL中有个非常重要的概念即double write:甚至还有相关内存结 ...

  6. oracle 游标内存自动释放,详解Oracle隐式游标和显式游标

    游标是什么?就是在内存开辟的一块临时存储空间. 1.Oracle隐式游标 1.1Oracle有常用的哪些隐式游标 1.2 Oracle隐式游标演示 -- 隐式游标 (使用的表为Oracle默认自带的e ...

  7. 详解oracle多种表连接方式,详解Oracle多种表连接方式

    ORACLE 多表连接与子查询 连接的类型 Oracle8i之前的表连接: 等值连接(Equijoin) 非等值连接(Non-Equijoin) 外连接(Outer join):-->左外连接- ...

  8. oracle call 存储过程 带out_详解oracle数据库存储过程调试方法

    概述 虽然现在存储过程相对比较少用了,但是平时接触不可避免的要跟存储过程打交道,当需要自己写的时候总会碰到这或那的错误,这个时候一般要怎么调试呢? PL/SQL调试 PL/SQL中提供了[调试存储过程 ...

  9. c语言中strtok函数详解,手把手教你自主实现字符串切割函数,内附详细代码。

    函数功能简介: 对字符串str进行切割,切割的标志为字符指针q指向的这两个字符 "# *":. 但是在对这个函数进行调用时,只有在第一次调用时,才会将str这个字符串的首地址传递过 ...

最新文章

  1. php获取当前系统配置文件,thinkphp5.1+配置文件结构及获取
  2. 【转】全面理解javascript的arguments,callee,caller,call,apply概念(修改版)
  3. python简单实用案例_Python 21 Django 实用小案例1
  4. 市面上有哪几种门_市面上常见的木门种类有哪些呢?
  5. coreboot学习4:启动流程跟踪之romstage阶段
  6. 【Siddhi 5】Siddhi 5 源码编译
  7. java二进制八进制十六进制写法,java 二进制,八进制,十进制,十六进制间相互转换的步骤...
  8. BZOJ 3720 树分块
  9. 时间序列分析--移动平均法预测模型
  10. 网络收藏夹--用来收藏我经常访问的网站
  11. 起风了用计算机打,求《起风了》计算器谱。
  12. vue项目运行后自动打开浏览器
  13. undo和redo日志
  14. 桌面应用开发技术对比
  15. Java jdk keytool 实现SSL双向认证的方法(客户端与服务器)
  16. 国内怎么开通苹果Arcade订阅
  17. java properties文件 变量_properties文件和环境变量
  18. GIS标准分幅工具——制作图幅接合表
  19. 时序优化方法和引起时序违例的若干问题
  20. python中保留字的含义_Python中的变量之保留字与标识符

热门文章

  1. 爬梯:指令规则和语义
  2. RecyclerView局部刷新的坑
  3. 移动互联的钱途与前途
  4. ui设计要学插画吗?
  5. android 视频编辑特效,特效视频剪辑编辑
  6. TOMCAT的作用及各目录作用
  7. 今年春晚去百度APP抢红包?什么骚操作?
  8. 前端和后端之间有什么区别,应该如何选择?
  9. ubuntu 20.04/22.04下,两个显示屏设置不同缩放比例
  10. python怎么在散点图上画圆圈_Python如何在图片上画一个实心圆