Необязательное условие в Oracle 10g - PullRequest
0 голосов
/ 07 июня 2018

Для фиктивного теста я хочу показать список сотрудников в веб-форме.

В веб-форме есть раскрывающийся список с кратким списком отделов, например:

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?

Спасибо.

1 Ответ

0 голосов
/ 07 июня 2018
 SELECT firstname, lastname
 FROM employees
 WHERE 0 = :p_deptid
 OR dept_id = :p_deptid
...