Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / Index
 

Index based on case statement

SQL> SQL> create table registrations   2  ( attendee    NUMBER(4)   3  , course      VARCHAR2(6)   4  , begindate   DATE   5  , evaluation  NUMBER(1)) ; Table created. SQL> SQL> insert into registrations values (1, 'SQL',date '1999-04-12',4   ); 1 row created. SQL> insert into registrations values (2, 'SQL',date '1999-12-13',NULL); 1 row created. SQL> insert into registrations values (3, 'SQL',date '1999-12-13',NULL); 1 row created. SQL> insert into registrations values (4, 'OAU',date '1999-08-10',4   ); 1 row created. SQL> insert into registrations values (5, 'OAU',date '2000-09-27',5   ); 1 row created. SQL> insert into registrations values (6, 'JAV',date '1999-12-13',2   ); 1 row created. SQL> insert into registrations values (7, 'JAV',date '2000-02-01',4   ); 1 row created. SQL> insert into registrations values (8, 'JAV',date '2000-02-01',5   ); 1 row created. SQL> insert into registrations values (9, 'XML',date '2000-02-03',4   ); 1 row created. SQL> insert into registrations values (10,'XML',date '2000-02-03',5   ); 1 row created. SQL> insert into registrations values (1, 'PLS',date '2000-09-11',NULL); 1 row created. SQL> insert into registrations values (2, 'PLS',date '2000-09-11',NULL); 1 row created. SQL> insert into registrations values (3, 'PLS',date '2000-09-11',NULL); 1 row created. SQL> SQL> create unique index oau_reg on registrations   2  ( case course when 'OAU' then attendee else null end   3  , case course when 'OAU' then course   else null end ); Index created. SQL> SQL> insert into registrations values (7900,'OAU',sysdate,null); 1 row created. SQL> SQL> drop index oau_reg; Index dropped. SQL> SQL> drop table registrations; Table dropped. SQL>