select from column-separated list
This is asked over and over in the forums, but why not proposing an 11g solution here
create table t(description varchar2(12) primary key,
numbers varchar2(4000));
insert into t(description, numbers) values ('PRIME','2,3,5,7');
insert into t(description, numbers) values ('ODD','1,3,5,7,9');
commit;
| DESCRIPTION | NUMBERS |
|---|---|
| PRIME | 2,3,5,7 |
| ODD | 1,3,5,7,9 |
Now I want to unpivot numbers in rows
select description,(column_value).getnumberval()
from t,xmltable(numbers)
| DESCRIPTION | (COLUMN_VALUE).GETNUMBERVAL() |
|---|---|
| PRIME | 2 |
| PRIME | 3 |
| PRIME | 5 |
| PRIME | 7 |
| ODD | 1 |
| ODD | 3 |
| ODD | 5 |
| ODD | 7 |
| ODD | 9 |
It is that simple
Works also with strings :
select (column_value).getstringval()
from xmltable('"a","b","c"');
| (COLUMN_VALUE).GETSTRINGVAL() |
|---|
| a |
| b |
| c |