Tables look as follows:
MAJOR | COURSE | CLASS | CREDITS | ROOM_NO | TEACHER |
---|---|---|---|---|---|
Nuclear Science | Physics A | A. Brown, Room 208 | 8 | ||
Nuclear Science | Mathematics A | M. Stevens, Room 56 | 8 | ||
Nuclear Science | Advanced Algebra | K.Wise, Audit. 20 | 10 | ||
English Literature | Ex. Phil | A.Peterson, Room 208 | 8 | ||
English Literature | Early British Lit | A.Peterson, Room 208 | 8 | ||
English Literature | Greek Mythology | D.Simmons, Room 206 | 10 | ||
Nuclear Science | Physics A | Goodman, Room 208 | 8 |
To populate the ROOM_NO and TEACHER columns, I used the following query:
MERGE INTO COURSE_CATALOG A USING (SELECT CLASS FROM COURSE_CATALOG) B ON (A.ROWID = B.ROWID) WHEN MATCHED THEN UPDATE SET A.TEACHER = REGEXP_REPLACE(REGEXP_SUBSTR(CLASS, '[[:alpha:]]+.{1,}[^[:digit:]]',1,1,'i'), ', Room |, Audit.', ''), A.ROOM_NO = REGEXP_SUBSTR(B.CLASS,'[[:digit:]]+'), A.CLASS = NULL ; COMMIT;Result:
MAJOR | COURSE | CLASS | CREDITS | ROOM_NO | TEACHER |
---|---|---|---|---|---|
Nuclear Science | Physics A | 8 | 208 | A. Brown | |
Nuclear Science | Mathematics A | 8 | 56 | M. Stevens | |
Nuclear Science | Advanced Algebra | 10 | 20 | K.Wise | |
English Literature | Ex. Phil | 8 | 208 | A.Peterson | |
English Literature | Early British Lit | 8 | 208 | A.Peterson | |
English Literature | Greek Mythology | 10 | 206 | D.Simmons | |
Nuclear Science | Physics A | 8 | 208 | Goodman |