sql >> Database >  >> RDS >> Oracle

Meer dan één partitie opnemen in een enkele select-instructie in Oracle

Er zijn ten minste drie manieren om gegevens van specifieke partities te selecteren. Zie de handleiding voor een grondige beschrijving van de syntaxis.

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% van de tijd zou optie #1 voldoende moeten zijn. Oracle bepaalt automatisch welke partities worden gebruikt en snoeit correct. Voor gevallen waarin snoeien niet correct werkt, of het logischer is om te selecteren op basis van de partitienaam of sleutel, zouden opties #2 of #3 moeten werken.




  1. Hoe SQL Server op Windows te installeren

  2. Hoe krijg ik een telling, zelfs als er geen resultaten zijn die overeenkomen met mysql?

  3. Bestand versus database voor opslagefficiëntie in chat-app

  4. Mysql gebruiken in de opdrachtregel in osx - opdracht niet gevonden?