oracle 行转列 列转行函数理解

1、pivot 行转列函数

含义:pivot 聚合函数(字段1) for 字段2 in (值1,值2,值3...)
将字段2中的值1,值2,值3...作为字段名称在对字段1根据聚合函数做聚合(SUM、max、min、avg等)。

例、原表为:

oracle 行转列 列转行函数理解

将这个表格转换为按列的:

select * from TABLE_20191210_PIVOT
pivot (
       max(income) for value1 in ('第一' as 第一,'第二' as 第二,'第三' as 第三)
)

解释:将income字段中的col_1作为一列重命名为第一列,col_2做为单独一列重命名为第二列,col_3做为单独一列重命名为第三列。

查找数据中有col_1、col_2、col_3的数据,对value1字段做聚合.

结果为:

oracle 行转列 列转行函数理解

2、unpivot 列转行函数

列转行函数用法与pivot函数类似

oracle 行转列 列转行函数理解