Зачем использовать CASE
?Почему бы просто
AND ( ( (1 < 2) and rolename IN ('Owner Role', 'Eval Owner Role') )
OR ( (2 < 1) and rolename IN ('Eval Owner Role') ) )
Я предполагаю, что на самом деле у вас нет предикатов, которые жестко запрограммированы для оценки TRUE (1 <2) или FALSE (2 <1), и что они на самом деле связаныпеременные в вашем фактическом коде. </p>
Если вы действительно хотите использовать оператор CASE
, вы можете кодировать
AND( CASE WHEN (1 < 2) and rolename IN ('Owner Role', 'Eval Owner Role')
THEN 1
WHEN (2 < 1) and rolename IN ('Eval Owner Role')
THEN 1
ELSE 0
END) = 1
, но оптимизатору будет гораздо сложнее разобратьсяс и гораздо менее ясно для разработчика, который должен поддерживать его.