Use three columns as primary key
SQL> SQL> create table registrations 2 ( attendee NUMBER(4) 3 , course VARCHAR2(6) 4 , begindate DATE 5 , evaluation NUMBER(1) 6 , constraint R_PK primary key (attendee,course,begindate) 7 ) ; Table created. SQL> SQL> insert into registrations values (2,'SQL',date '2009-04-12',4 ); 1 row created. SQL> insert into registrations values (14,'SQL',date '2009-04-12',5 ); 1 row created. SQL> insert into registrations values (6,'SQL',date '2009-04-12',4 ); 1 row created. SQL> insert into registrations values (11,'SQL',date '2009-04-12',2 ); 1 row created. SQL> insert into registrations values (8,'SQL',date '2009-10-04',NULL); 1 row created. SQL> insert into registrations values (9,'SQL',date '2009-10-04',3 ); 1 row created. SQL> insert into registrations values (13,'SQL',date '2009-10-04',4 ); 1 row created. SQL> insert into registrations values (13,'SQL',date '2009-12-13',NULL); 1 row created. SQL> insert into registrations values (6,'SQL',date '2009-12-13',NULL); 1 row created. SQL> insert into registrations values (3,'OAU',date '2009-08-10',4 ); 1 row created. SQL> SQL> select evaluation 2 from registrations 3 where attendee = 8 4 order by evaluation; EVALUATION ---------- SQL> SQL> drop table registrations; Table dropped.