Oracle
 sql >> Database >  >> RDS >> Oracle

Come includere più di una partizione in una singola istruzione select in Oracle

Esistono almeno tre modi per selezionare i dati da partizioni specifiche. Consulta il manuale per una descrizione completa della sintassi.

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);

Il 99,9% delle volte l'opzione n. 1 dovrebbe essere sufficiente. Oracle determinerà automaticamente quali partizioni vengono utilizzate e sfoltirà correttamente. Per i casi in cui l'eliminazione non funziona correttamente o è più logico selezionare in base al nome o alla chiave della partizione, le opzioni n. 2 o n. 3 dovrebbero funzionare.