Оператор CASE с поиском
Оператор CASE с поиском
Оператор CASE с поиском аналогичен простому оператору CASE, за исключением того, что используется несколько условных выражений, а не одно. Например:
CASE
WHEN vmajor
IN ('Computer Science', 'Electrical Engineering')
THEN INSERT INTO geeks (StudentID, Fname, Lname)
VALUES(:sid, :sfname, :slname) ;
WHEN vclub
IN ('Amateur Radio', 'Rocket1,'Computer')
THEN INSERT INTO geeks (StudentID, Fname, Lname)
VALUES(:sid, :sfname, :slname) ;
ELSE
INSERT INTO poets (StudentID, Fname, Lname)
VALUES(:sid, :sfname, :slname) ;
END CASE
Чтобы избежать возможности возникновения исключения, следует поместить всех студентов, которые не являются "физиками" (geeks), в таблицу poets ("лирики")- Конечно, не все "не физики" являются "лириками" — ведь есть же еще и "футболисты", не говоря уже о "химиках". Это не меняет сути дела, так как в оператор CASE всегда можно добавить еще несколько предложений WHEN.