I need to do multiple selection in the where clause
x
select *
from BATS
where REASON in
case when :P12_REASON = 'Rejects' then ('online', 'offline') else '' end
and
case when :P12_REASON = 'accepted' then ('online', 'offline', 'written') else '' end
and
goings on ..
Advertisement
Answer
You need to rewrite the clause using AND
logic:
SELECT *
FROM BATS
WHERE (:P12_REASON = 'Rejects' AND REASON IN ('online', 'offline') OR
:P12_REASON = 'accepted' AND REASON IN ('online', 'offline', 'written'))
AND -- goings on
Note the parentheses around this logic are necessary to avoid improper grouping with the logic following the AND
.