Для фиктивного теста я хочу показать список сотрудников в веб-форме.
В веб-форме есть раскрывающийся список с кратким списком отделов, например:
All Depts
Sales Dept
Marketing Dept
Communication Dept
HR Dept
Finance Dept
IT Dept
Выпадающий элемент All Depts
имеет значение 0.
Следующая скрипта показывает, что я пытаюсь сделать:
http://sqlfiddle.com/#!4/59d1f/2
Я знаю, что могу сделать это:
IF (deptid = 0) THEN
select firstname, lastname from employees;
ELSE
select firstname, lastname from employees where deptid = :p_deptid
END IF;
Но в моей реальной ситуации гораздо более сложный запрос на выборку, который включает в себя объединения нескольких таблиц.Поэтому я не хочу загромождать свой сценарий повторяющимися кодами.
Могу ли я достичь своей цели с помощью CASE WHEN?Или я должен использовать динамический SQL?
Спасибо.