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

Oracle ha un concetto di indice filtrato?

È possibile creare un indice basato su funzioni in Oracle che sfrutti il ​​fatto che i valori NULL non sono archiviati negli indici b-tree. Qualcosa come

CREATE INDEX TimeSeriesPeriodSs1
    ON TimeSeriesPeriod( 
          (CASE WHEN completionStatus = 'Complete' AND validationStatus = 'Pending'
                THEN validationStatus
                ELSE NULL
            END),
          (CASE WHEN completionStatus = 'Complete' AND validationStatus = 'Pending'
                THEN completionStatus
                ELSE NULL
            END)
       );