oracle行列转换

浏览: 2178

目录:

1、case when----列转行 及其他用法

  •         case when 判断 then 值 else 值  end as 新字段名
  •         sum(case when 判断 then 值 else 值  end) as 新字段名
  •         case when 判断=A then 0

                         判断=B then 1     判断=C then 2      end as 新字段名

2、decode---列转行及其他用法

  •        decode(字段,值,如果是赋予值,如果否赋予值)
  •        sum(decode())
  •        decode(字段,值1,返回值1,值2,返回值2,值3,返回值3.....)

3、分组列转行,且合并组对应的值----vm_concat() 函数

4、unpivot-------多列合并转一列

5、使用union -------多列合并转一列



------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------





1、case when----列转行

比如依据scott用户下的emp表格,将job字段列转化成行。

原表


1.png

表转换

2.png



2、decode的普通用法、聚合函数用法

普通:使用emp表格,进行转换

4.png




decode的聚合:

如将下图的表,将每个客户的合同行转列,且求合同费用值。


5.png



6.png


decode(字段,判断值1,赋值1,判断值2,赋值2,判断值3,赋值3.....)


7.png

3、分组列转行,且合并组对应的值----vm_concat() 函数

8.png


4、unpivot-------多列合并转一列






 



5、使用union -------多列合并转一列


推荐 0
本文由 橘子收割机 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

2 个评论

上面几张图片好像看不到呀
是的~之前发的时候都没问题呢~我重新补上图片了

要回复文章请先登录注册