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

Cách bao gồm nhiều phân vùng trong một câu lệnh chọn duy nhất trong oracle

Có ít nhất ba cách để chọn dữ liệu từ các phân vùng cụ thể. Xem hướng dẫn để có mô tả kỹ lưỡng về cú pháp.

create table agg_summary (period date, lvl_id number)
partition by list (lvl_id)
(
    partition p1 values (1),
    partition p2 values (2),
    partition p3 values (3)
);

--#1: Normal predicate:
select * from agg_summary where lvl_id in (1,2);

--#2: Partition_extended_name:
select * from agg_summary partition (p1)
union all
select * from agg_summary partition (p2);

--#3: Partition_excension_clause:
select * from agg_summary partition for (1)
union all
select * from agg_summary partition for (2);

99,9% thời gian tùy chọn # 1 là đủ. Oracle sẽ tự động xác định phân vùng nào được sử dụng và sẽ cắt tỉa một cách chính xác. Đối với các trường hợp việc cắt tỉa không hoạt động chính xác hoặc hợp lý hơn khi chọn dựa trên tên hoặc khóa phân vùng, các tùy chọn # 2 hoặc # 3 sẽ hoạt động.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ghi nhớ các Phiên bản RAC trong Công cụ Perf

  2. Làm thế nào để chuyển toàn bộ một hàng (trong SQL, không phải PL / SQL) vào một hàm được lưu trữ?

  3. Không thể phân tích cú pháp dấu thời gian Oracle trong C #

  4. 40 câu hỏi bạn phải biết về R12.2

  5. Cách tôi xóa các bản sao khỏi listagg