在Oracle中将char拆分为多行
Splitting char to multiple rows in Oracle
table如下:
YEAR | MONTH | HOLIDAY |
2015 | 10 | # # # ### |
2015 | 11 | # # # # # |
我想创建以下内容:
YEAR | MONTH | DATE | VALUE |
2015 | 10 | 01 | # |
2015 | 10 | 02 | |
2015 | 10 | 03 | |
2015 | 10 | 04 | # |
UNTIL
2016 | 11 | 30 | # |
我已经看到了一些关于堆栈的解决方案,但都行不通
任何帮助将不胜感激
嗯,我不确定你为什么要到 11 月 31 日,一个不存在的日期。但是,这里有一个想法:
with n as (
select level as n
from dual
connect by level <= 31
)
select t.year, t.month, n.n as day,
substr(t.holidays, n.n, 1) as holiday
from t join
n
on n.n <= length(t.holiday);
table如下:
YEAR | MONTH | HOLIDAY |
2015 | 10 | # # # ### |
2015 | 11 | # # # # # |
我想创建以下内容:
YEAR | MONTH | DATE | VALUE |
2015 | 10 | 01 | # |
2015 | 10 | 02 | |
2015 | 10 | 03 | |
2015 | 10 | 04 | # |
UNTIL
2016 | 11 | 30 | # |
我已经看到了一些关于堆栈的解决方案,但都行不通
任何帮助将不胜感激
嗯,我不确定你为什么要到 11 月 31 日,一个不存在的日期。但是,这里有一个想法:
with n as (
select level as n
from dual
connect by level <= 31
)
select t.year, t.month, n.n as day,
substr(t.holidays, n.n, 1) as holiday
from t join
n
on n.n <= length(t.holiday);