select p.period_type, a.no w_date
from p, (select rownum no from all_objects where rownum < 8) a
where a.no between p.from_date and p.end_date
order by p.period_type, a.no
select period_type, from
( select decode(period_type,'weekdays',0,1) type,period_type,from_date w_date
from p
uion all
select decode(period_type,'weekdays',0,1) type,period_type,end_date
from p
) a
order by a.type