Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm thế nào để đối phó với giới hạn lồng sâu 1 cấp trong Oracle?

Cách tiếp cận của tôi sẽ là tạo một số ngày cố định bắt đầu từ sysdate -1 giảm dần và sau đó làm việc với chúng. Trong đoạn mã sau, tôi đã chọn 100. Khi bạn đã chọn đúng ngày, chỉ cần sử dụng nó để lọc trên 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hợp nhất hai hàng thành một trong khi thay thế các giá trị rỗng

  2. Có hàm MD5 Sum trong PL / SQL không

  3. Cơ sở dữ liệu mẫu SQL của Oracle

  4. Làm cách nào để tạo biểu mẫu chèn / cập nhật cho nhiều bảng trong Oracle Apex 5.1.4

  5. Ý nghĩa hiệu suất của việc sử dụng (DBMS_RLS) Oracle Row Level Security (RLS)?