The following programs demonstrate the use of the UNIQUE conditional expression. These programs join the relations EMPLOYEES and DEGREES over their common field, EMPLOYEE_ID. The UNIQUE expression limits the record stream to those records in the EMPLOYEES relation that have only one corresponding record in the DEGREES relation. These programs print an informational message and the selected employees first and last name in alphabetical order, based on the last name.
1 – C Example
#include <stdio.h> DATABASE PERS = FILENAME "PERSONNEL"; main() { READY PERS; START_TRANSACTION READ_ONLY; FOR E IN EMPLOYEES SORTED BY E.FIRST_NAME WITH UNIQUE D IN DEGREES WITH D.EMPLOYEE_ID = E.EMPLOYEE_ID printf("%s %s has one and only one college degree.\n", E.FIRST_NAME, E.LAST_NAME); END_FOR; COMMIT; FINISH; }
2 – Pascal Example
program unique_expr (input,output); DATABASE PERS = FILENAME 'PERSONNEL'; begin READY PERS; START_TRANSACTION READ_ONLY; FOR E IN EMPLOYEES WITH UNIQUE D IN DEGREES WITH D.EMPLOYEE_ID = E.EMPLOYEE_ID writeln (E.FIRST_NAME, ' ', E.LAST_NAME, ' has one and only one college degree.'); END_FOR; COMMIT; FINISH; end.