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

Hàng cho mỗi ngày từ ngày bắt đầu đến ngày kết thúc

Sử dụng mệnh đề truy vấn con đệ quy-bao thanh toán:

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;

Cái nào cho dữ liệu mẫu của bạn:

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

Kết quả đầu ra:

db <> fiddle tại đây



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kích hoạt để thực thi mối quan hệ M-M

  2. Oracle cùng một tên bảng trên các lược đồ khác nhau?

  3. Oracle - áp dụng hàm to_number cho cột varchar

  4. Cách tạo bảng lồng nhau bằng kiểu dữ liệu do người dùng xác định trong cơ sở dữ liệu Oracle

  5. Oracle Chèn truy vấn trong thủ tục được lưu trữ không hoạt động khi được gọi từ mã phía sau