Хорошо, я новичок в использовании этого connect by
. Но это всегда весьма полезно. У меня есть небольшая проблема, вы, ребята, могли бы помочь мне ...
Учитывая начальный месяц (скажем, to_char(sysdate,'YYYYMM')
) и конечный месяц (скажем, to_char(add_months(sysdate, 6),'YYYYMM')
), вы хотите получить список промежуточных месяцев в одном формате.
Хорошо, я хочу использовать это в сценарии автоматизации разделов. Мой лучший выстрел на данный момент (довольно жалкий) дает недействительные месяцы, например, '201034 '... (и да, я знаю, невероятно неэффективно)
Следует код:
SELECT id
from
(select to_char(add_months(sysdate, 6),'YYYYMM') as tn_end, to_char(sysdate,'YYYYMM') as tn_start from dual) tabla,
(select * from
(Select Level as Id from dual connect by Level <= (Select to_char(add_months(sysdate, 1),'YYYYMM')from dual)) where id > to_char(sysdate,'YYYYMM')) t
Where
t.Id between tabla.tn_start and tabla.tn_end
как мне сделать так, чтобы этот запрос возвращал только допустимые месяцы? Любые советы?
ура товарищи,
е.