【发布时间】:2018-05-25 01:58:01
【问题描述】:
我正在使用 Oracle 11g。我有下表(这只是示例,实际上还有更多记录):
CREATE TABLE table1(city varchar2(20), state varchar2(20), year varchar2(20), jan integer, feb integer, mar integer);
insert into table1 values('city1','state1','2017',1,2,3);
insert into table1 values('city9','state9','2018',11,12,13);
我想将其还原为以下形状:
CITY STATE ID_TIMESPAN USD
city1 state1 2017-01 1
city1 state1 2017-02 2
city1 state1 2017-03 3
city9 state9 2018-01 11
city9 state9 2018-02 12
city9 state9 2018-03 13
当我尝试下面提到的代码时出现此错误:
ORA-56901:枢轴|非枢轴值不允许非常量表达式
这是我正在尝试的代码:
select *
from table1
unpivot
(
USD
for ID_TIMESPAN in
(
jan as year || '-01',
feb as year || '-02',
mar as year || '-03'
)
);
请告诉我该怎么做?
【问题讨论】: