create table agg_summary (period date, lvl_id number);
已为lvl_id
创建了分区,其中包含1,2,3作为每个ID的单独分区。
如何访问agg_summary
以分别拥有1和2?
答案 0 :(得分:1)
至少有三种方法可以从特定分区中选择数据。有关语法的详细说明,请参阅the manual。
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应该有效。