如何在oracle中的单个select语句中包含多个分区

如何在oracle中的单个select语句中包含多个分区,oracle,partition,Oracle,Partition,已经为lvl_id创建了分区,其中包括1,2,3作为每个id的单独分区 如何访问agg_summary以将1和2放在一起?从特定分区选择数据至少有三种方法。有关语法的详细说明,请参阅 create table agg_summary (period date, lvl_id number); 99.9%的时间选项1应足够。Oracle将自动确定使用哪些分区,并将正确修剪。对于修剪不能正常工作的情况,或者根据分区名称或键选择更符合逻辑的情况,选项2或3应该可以工作。您是否尝试过查询1、2中的lv

已经为lvl_id创建了分区,其中包括1,2,3作为每个id的单独分区


如何访问agg_summary以将1和2放在一起?

从特定分区选择数据至少有三种方法。有关语法的详细说明,请参阅

create table agg_summary (period date, lvl_id number);

99.9%的时间选项1应足够。Oracle将自动确定使用哪些分区,并将正确修剪。对于修剪不能正常工作的情况,或者根据分区名称或键选择更符合逻辑的情况,选项2或3应该可以工作。

您是否尝试过查询1、2中的lvl_id在哪里?虽然跨分区可能无法很好地执行,但它应该可以工作。示例数据和期望的结果将很有帮助。
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);