ORACLE 行列转函数

Oracle11g提供了新的行列转换操作:PIVOT(行转列)和UNPIVOT列转行。老版本使用decode来进行转换,本文使用UNPIVOT的功能进行展示。 详细资料请看: http://www.oracle.com/technetwork/cn/articles/11g-pivot-101924-zhs.html

现有表src_table如下:

product_Id(产品ID)product_color(颜色)porduct_type(型号)is_intelligent(是否智能)

1111      red     t1     是

1112      blue   t2      否

1113     green  t3     是

目标表dest_table如下:

product_Idparam_name(参数名称)param_value(参数值)

1111   product_color     red

1112   product_color    blue

1113   product_color     green

1111   product_typet    1

1112    product_typet   2

1113    product_typet   3

1111   is_intelligent    是

1112   is_intelligent    否

1113   is_intelligent    是

通过UNPIVOT实现如下:

SELECT *

FROM   src_table

UNPIVOT (param_value FOR param_name IN (product_color AS 'product_color', product_type AS 'product_type', is_intelligent AS 'is_intelligent');

你可能感兴趣的:(ORACLE 行列转函数)