I am on Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
======
I need:
create table my_table_name
(
a varchar2(255)
,b varchar2(255)
,c varchar2(255)
,jan int
,feb int
,mar int
,apr int
);
insert into (a, b, c, jan, feb, mar, apr) values ('a', 'b', 'c', 11, 1, 12, 111);
a | b | c | jan | feb | mar | apr |
---|
a | b | c | 11 | 1 | 12 | 111 |
to look like:
a | b | c | date_id | val |
---|
a | b | c | jan | 11 |
a | b | c | feb | 1 |
a | b | c | mar | 12 |
a | b | c | apr | 111 |
Could someone please help me achieve this?
I know of UNION, but I don't want to use it in hopes there's something already there for me, built-in.
with main as
(
select
'jan' date_id
,a
,b
,c
,jan as val
from
my_table_name
union all
select
'feb' date_id
,a
,b
,c
,feb as val
from
my_table_name
union all
select
'mar' date_id
,a
,b
,c
,mar as val
from
my_table_name
union all
select
'apr' date_id
,a
,b
,c
,apr as val
from
my_table_name
)
select * from main;
Thanks,
Dorian