PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Generuj serie miesięcy dla każdego wiersza w Oracle

To powinno załatwić sprawę (zignoruj ​​klauzulę with; to po prostu naśladuje twoją tabelę tst bez konieczności fizycznego tworzenia tabeli):

with tst as (select 1 id, to_date('2014-02-15','yyyy-mm-dd') st_date, to_date('2014-07-01','yyyy-mm-dd') en_date from dual union all
             select 2 id, to_date('2014-03-15','yyyy-mm-dd') st_date, to_date('2014-04-01','yyyy-mm-dd') en_date from dual)
select id, add_months(trunc(st_date, 'month'), level -1) mnth
from   tst
connect by level <= months_between(trunc(en_date, 'mm'), trunc(st_date, 'mm')) + 1
           and prior id = id
           and prior dbms_random.value is not null;

        ID MNTH      
---------- ----------
         1 2014-02-01
         1 2014-03-01
         1 2014-04-01
         1 2014-05-01
         1 2014-06-01
         1 2014-07-01
         2 2014-03-01
         2 2014-04-01



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak napisać sparametryzowaną kwerendę sql, aby zapobiec wstrzyknięciu SQL?

  2. Zapytanie PostgreSQL SQL do przemierzania całego nieskierowanego grafu i zwracania wszystkich znalezionych krawędzi

  3. Policz wiersze po dołączeniu do trzech tabel w PostgreSQL

  4. „uwierzytelnianie hasła nie powiodło się dla postgres użytkownika”

  5. Generuj sql z podzapytanie jako kolumnę w instrukcji SELECT za pomocą SQLAlchemy