sql >> Base de Datos >  >> RDS >> Oracle

Cómo incluir más de una partición en una sola declaración de selección en Oracle

Hay al menos tres formas de seleccionar datos de particiones específicas. Consulte el manual para obtener una descripción completa de la sintaxis.

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

El 99,9 % del tiempo, la opción n.º 1 debería ser suficiente. Oracle determinará automáticamente qué particiones se utilizan y las eliminará correctamente. Para los casos en los que la poda no funciona correctamente, o es más lógico seleccionar según el nombre o la clave de la partición, las opciones n.º 2 o n.º 3 deberían funcionar.