Предположим, есть такая структура таблицы
Name | Class | CS_ex_date | IT_ex_date|
xyz | CSE | 10 june | Null |
123 | ECE | Null | Null |
456 | MECH | Null | Null |
678 | MECH | Null | Null |
abc | IT | Null | 3 Aug |
Я хочу создать оператор выбора с помощью оператора case, а внутри операторов case - некоторые условия.
Я видел обычный синтаксис для операторов case и операторов case в условиях where, но я хочу поместить некоторые условия в часть THEN. У меня проблемы с синтаксисом, и я не могу найти ни одного примера, на который можно ссылаться.
Мой запрос выглядит примерно так:
select *
from student
where (case
when class like '%SE%'
then CS_ex_date > sysdate and CS_ex_date < sysdate + 60
when class like '%T%'
then IT_ex_date > sysdate and IT_ex_date < sysdate + 60
end);
Я не уверен в синтаксисе моего запроса и получении ORA-00905: отсутствует ключевое слово.
Ожидаемый результат должен быть
Name | Class | CS_ex_date | IT_ex_date|
xyz | CSE | 10 june | Null |
abc | IT | Null | 3 Aug |
Есть ли способ обойти это? Это дает тот же результат, используя любой другой метод.