преобразовать один столбец в несколько строк - PullRequest
0 голосов
/ 20 марта 2020

У меня есть вывод как:

03-19-2020
03-20-2020
03-21-2020
03-22-2020

Как я могу изменить это, чтобы отобразить как:

v_datecol1       v_datecol2    v_datecol3    ------ v_datecoln
03-19-2020       03-20-2020    03-21-2020          03-04-2020

4 даты, которые я упомянул в качестве примера, у меня будет 25 дат сегодня и мне нужно все в отдельных столбцах, как указано выше

1 Ответ

0 голосов
/ 20 марта 2020

Попробуйте:

with dt_tab as
(
select '03-19-2020' dt from dual union
select '03-20-2020' dt from dual union
select '03-21-2020' dt from dual union
select '03-22-2020' dt from dual 
)
select listagg(dt,' ') within group (order by dt) rows_as_columns from dt_tab;

На основе вашего комментария вы можете играть с PIVOT, например:

with dt_tab as
(
select dt, rownum row_num from 
(
select '03-19-2020' dt from dual union
select '03-20-2020' dt from dual union
select '03-21-2020' dt from dual union
select '03-22-2020' dt from dual union
select '03-23-2020' dt from dual union
select '03-24-2020' dt from dual union
select '03-25-2020' dt from dual union
select '03-26-2020' dt from dual union
select '03-27-2020' dt from dual union
select '03-28-2020' dt from dual union
select '03-29-2020' dt from dual union
select '03-30-2020' dt from dual union
select '03-31-2020' dt from dual union
select '04-01-2020' dt from dual union
select '04-02-2020' dt from dual union
select '04-03-2020' dt from dual union
select '04-04-2020' dt from dual union
select '04-05-2020' dt from dual union
select '04-06-2020' dt from dual union
select '04-07-2020' dt from dual union
select '04-08-2020' dt from dual union
select '04-09-2020' dt from dual union
select '04-10-2020' dt from dual union
select '04-11-2020' dt from dual union
select '04-12-2020' dt from dual 
)
order by dt
)
select * from 
(
select dt_tab.* from dt_tab
)
pivot 
(
min(dt) for (row_num) in (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25)
)
;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...