Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment inclure plusieurs partitions dans une seule instruction select dans Oracle

Il existe au moins trois façons de sélectionner des données à partir de partitions spécifiques. Voir le manuel pour une description détaillée de la syntaxe.

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 % du temps, l'option 1 devrait être suffisante. Oracle déterminera automatiquement quelles partitions sont utilisées et élaguera correctement. Dans les cas où l'élagage ne fonctionne pas correctement, ou s'il est plus logique de sélectionner en fonction du nom ou de la clé de la partition, les options 2 ou 3 devraient fonctionner.