sql >> データベース >  >> RDS >> Oracle

開始日から終了日までの各日付の行

    再帰的なサブクエリファクタリング句を使用します:

    WITH ranges ( start_dt, end_dt, id ) AS (
      SELECT start_dt, end_dt, id
      FROM   table_name
    UNION ALL
      SELECT start_dt + INTERVAL '1' DAY, end_dt, id
      FROM   ranges
      WHERE  start_dt + INTERVAL '1' DAY <= end_dt
    )
    SELECT start_dt,
           id
    FROM   ranges;
    

    サンプルデータはどれですか:

    CREATE TABLE table_name ( start_dt, end_dt, id ) AS
    SELECT DATE '2013-04-05', DATE '2013-04-09', 1 FROM DUAL
    

    出力:

    db <> fiddle こちら



    1. PostgreSQLでデータベースへのアクセスを制限する方法

    2. C#を使用してmySQLテーブルを更新する

    3. PostgreSQL:特定の時間帯の特定の曜日に発生する行を選択する

    4. regex_substrの句で接続