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>