oracle pivot函数 后求和,Oracle行转列,pivot函数和unpivot函数

本文详细介绍了SQL中的pivot和unpivot函数,用于实现数据的行转列和列转行。pivot函数通过指定聚合函数和需转换的列,将特定列的值转化为列名,而unpivot函数则将列转为行,通过定义新的列名和值所在列。示例中展示了如何使用这两个函数转换表格数据,帮助读者理解其工作原理和实际应用。
摘要由CSDN通过智能技术生成

pivot函数:行转列函数:

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

unpivot函数:列转行函数:

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

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

转换示例:

1.原始表数据:

sql语句:select * from T_PIVOT_TEST_1 ;

50e6c42ce6e8681a0aa11434717c8b13.png

2.用pivot函数进行行转列。其中用聚合函数对数据列进行求值,将th列中的值’COL_1‘,’COL_2‘,‘COL_3’转化为列名,并为其加上别名。

sql语句:select * from T_PIVOT_TEST_1

pivot (sum(er) for th in ('COL_1' as 第一列,'COL_2'as 第二列 ,'COL_3' as 第三列));

转换后结果图:

9c1ad35b59c157a821edcf5b674854bd.png

3.用nupivot函数进行列转行。在原sql语句上再加上unpivot函数,将列再转为行,在unpivot函数中,aa与bb为新增的列名,分别表示由列转换为行后的数据所在的列名和数据所在的列名。

sql语句:select * from T_PIVOT_TEST_1

pivot (sum(er) for th in ('COL_1' as 第一列,'COL_2'as 第二列 ,'COL_3' as 第三列))

unpivot ( aa for bb in(第一列,第二列,第三列));

转换后结果图:

326638fb6ece6237428cdb1d0f23b40c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值