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 |

### Like this:

Like Loading...