1
create table agg_summary (period date, lvl_id number);

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

如何访问agg_summary同时拥有 1 和 2?

4

1 回答 1

1

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

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% 的时间选项#1 应该足够了。Oracle 将自动确定使用哪些分区并将正确修剪。对于修剪无法正常工作的情况,或者根据分区名称或键进行选择更合乎逻辑,选项 #2 或 #3 应该可以工作。

于 2014-06-20T18:11:05.183 回答