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

Oracle a-t-il un concept d'index filtré ?

Vous pouvez créer un index basé sur des fonctions dans Oracle qui exploite le fait que les valeurs NULL ne sont pas stockées dans les index b-tree. Quelque chose comme

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