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

Oracleで1レベルの深いネスト制限に対処するにはどうすればよいですか?

    私のアプローチは、sysdate -1から降順で始まる固定数の日付を生成し、それらを処理することです。次のスニペットでは、100を選択しました。正しい日付を取得したら、それを使用してtable1でフィルタリングします。

    select dates 
      from (
      select rownum as rn, 
             dates 
        from (
        select x.dates, 
               nvl2(h.holiday_from,'T','F') as hd, 
               decode (to_char(x.dates,'D')-1,6,'T',7,'T','F') as WE 
          from (
          select trunc(sysdate) - rownum as dates
            from dual d
         connect By rownum <= 100 -- change this number if you plan on having long holidays
               ) x 
        left outer join holidays h
          on x.dates between h.holiday_fromand h.holiday_to
             )
       where hd = 'F' and WE = 'F' -- exclude holidays and weekends
           )
     where rn = 14; -- return the 14th working day from now
    


    1. mysqlはリファレンスドキュメントでDISTINCT()をどのように定義しますか

    2. Postgres次/前行SQLクエリ

    3. 30分後にデータベースからアイテムを削除する

    4. MySQL-クエリの速度をテストするためにキャッシュを使用しないように強制する