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');
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24867611/viewspace-735327/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24867611/viewspace-735327/