Я использовал следующее WHERE
предложение
WHERE (TYPE1 = :P3_ITEM1 OR :P3_ITEM1 IS NULL)
чтобы отфильтровать мой запрос по TYPE1, и он работал нормально, отображая записи того же TYPE1, когда элемент страницы P3_ITEM1 не равен нулю.
Теперь мне нужно добавить еще два фильтра для TYPE2 и TYPE3. Обычно только один элемент страницы P3_ITEM1, P3_ITEM2 или P3_ITEM3 не равен нулю, поэтому мне нужно отфильтровать все, что не равно нулю.
Я пытался
WHERE (TYPE1=:P3_ITEM1 OR :P3_ITEM1 IS NULL) OR
(TYPE2=:P3_ITEM2 OR :P3_ITEM2 IS NULL) OR
(TYPE3=:P3_ITEM3 OR :P3_ITEM3 IS NULL)
но это не сработало.
Я пытался использовать оператор CASE в своем предложении WHERE, но пока безуспешно. Кто-нибудь может помочь?
WHERE CASE
WHEN (:P3_ITEM1 IS NOT NULL) THEN (TYPE1=:P3_ITEM1)
WHEN (:P3_ITEM2 IS NOT NULL) THEN (TYPE2=:P3_ITEM2)
WHEN (:P3_ITEM3 IS NOT NULL) THEN (TYPE3=:P3_ITEM3)