ORACLE 竖表转横表的有关问题
ORACLE 竖表转横表的问题
表结构与信息如下:
CREATE TABLE TB_ITEM_INFO(
item_name varchar2(20),
item_data number(10,4),
constraint PK_ITEM_INFO primary key (item_name)
);
item_name(primary_key) item_data
value1 1.0
value2 2.0
value3 3.0
欲转为:
value1 value2 value3
1.0 2.0 3.0
在网上看了用decode函数的都是要有基准进行分组的,而这种转化没有基准,如果用decode函数结果就是
value1 value2 value3
1.0 0 0
0 2.0 0
0 0 3.0
望高手能给个完整的转换sql脚本,感谢~
------解决方案--------------------
表结构与信息如下:
CREATE TABLE TB_ITEM_INFO(
item_name varchar2(20),
item_data number(10,4),
constraint PK_ITEM_INFO primary key (item_name)
);
item_name(primary_key) item_data
value1 1.0
value2 2.0
value3 3.0
欲转为:
value1 value2 value3
1.0 2.0 3.0
在网上看了用decode函数的都是要有基准进行分组的,而这种转化没有基准,如果用decode函数结果就是
value1 value2 value3
1.0 0 0
0 2.0 0
0 0 3.0
望高手能给个完整的转换sql脚本,感谢~
------解决方案--------------------
- SQL code
--上面有误,这个 with TB_ITEM_INFO as( select 'value1' item_name, 1.0 item_data from dual union all select 'value2' item_name, 2.0 item_data from dual union all select 'value3' item_name, 3.0 item_data from dual) SELECT SUM(decode(item_name, 'value1', item_data, 0)) value1, SUM(decode(item_name, 'value2', item_data, 0)) value2, SUM(decode(item_name, 'value3', item_data, 0)) value3 FROM TB_ITEM_INFO;