Добавьте условное условие where для двух разных столбцов в oracle sql - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть требование написать запрос, где мне нужно добавить предложение where на основе входного значения, доступного из двух разных мест на клиенте. Например Я получаю только идентификатор с одной страницы, а с другой страницы я получаю диапазон дат для фильтрации записей.

В обоих условиях результат запроса одинаков, поэтому я подумал о том, как написать предложение where на основе ввода (Either Идентификатор или диапазон дат)

Например - Таблица сотрудников:

Если на одном экране у меня есть идентификатор, а из другого диапазона дат, поэтому я хочу построить динамический запрос c в oracle sql для извлечения набора результатов -

select * (required columns) from employee 
where 
-- other filter criteria     
and if {employee_id is received} then id = ${employee_id} 
else if {date range is received} then joining_date between {date range}

ПРИМЕЧАНИЕ. Также в JOIN есть несколько таблиц, которые я здесь не включил. Любая помощь будет оценена. :)

1 Ответ

0 голосов
/ 05 апреля 2020

Посмотрите, поможет ли что-то подобное; этот пример основан на выборочной таблице Скотта EMP (так как у меня нет ваших таблиц), поэтому - для проверки запроса я использовал то, что у меня есть.

select deptno, empno, ename, job, hiredate
from emp
where (    empno = :par_empno
       or :par_empno is null
      )
  and (    hiredate between :par_date_from and :par_date_to
       or (:par_date_from is null and :par_date_to is null)
      );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...