Does Oracle have a filtered index concept?

后端 未结 4 1873
慢半拍i
慢半拍i 2020-12-10 13:29

Similar to SQLServer where I can do the following

create index TimeSeriesPeriodSs1 on TimeSeriesPeriod (validationStatus, completionStatus)
where completionS         


        
4条回答
  •  情歌与酒
    2020-12-10 13:41

    You can create a function-based index in Oracle that leverages the fact that NULL values aren't stored in b-tree indexes. Something like

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

提交回复
热议问题