Oracle 11g提供了新的行列转换操作:PIVOT(行转列)和UNPIVOT列转行。本文对UNPIVOT的功能进行展示。
现有表src_table如下:
product_Id(产品ID) product_color(颜色) porduct_type(型号) is_intelligent(是否智能) 1111 red t1 是 1112 blue t2 否 1113 green t3 是
目标表dest_table如下:
product_Id param_name(参数名称) param_value(参数值) 1111 product_color red 1112 product_color blue 1113 product_color green 1111 product_type t1 1112 product_type t2 1113 product_type t3 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');