C/C++教程

oracle 行列转换函数

本文主要是介绍oracle 行列转换函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

oracle行转列、列转行函数在日常工作中起着至关重要的作用,现在把应用方法总结如下:
参考博客为:https://www.cnblogs.com/waynelo/p/9869020.html
pivot函数:行转列函数:

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

对于原始数据的情况如下:
在这里插入图片描述
行专列函数为:

select * from study_0410
    pivot (sum(amount) for month_ in ('1' as m1,'2'as m2 ,'3' as m3,'4' as m4));

转换结果如下:
在这里插入图片描述
对于上述结果,建表存在study_041002表中,再进行列转行,代码如下:

select  res1.years, substr(res1.bb,2,1) as month_ , res1.aa as  amuount from
(select *
  from study_041002
unpivot ( aa for bb in(m1,m2,m3,m4))) res1;

查询结果如下:
在这里插入图片描述

这篇关于oracle 行列转换函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!