Если я правильно понимаю, вы можете использовать OR
и AND
вместо CASE WHEN
Вы можете попробовать это.
У меня есть небольшой вопрос по acad_plan is null
, который acad_plan
вы хотите проверить l.acad_plan
или m.acad_plan
?
where l.au=m.acad_group
AND l.acad_prog = m.acad_prog
AND (acad_plan is null OR( acad_plan is not null AND l.acad_plan = m.acad_plan))
AND (l.acad_sub_plan is null OR( l.acad_sub_plan is not null AND l.acad_sub_plan=m.acad_sub_plan))