Если мое поле пусто, тогда мне нужно условие

select * from data where :P2_EMPLOYEE is null then MANAGER = 'Alex'
-1
user1544327 5 Янв 2020 в 14:02
... where ((:P2_EMPLOYEE is null and MANAGER = 'Alex') or (:P2_EMPLOYEE is not null))
 – 
Roman Hocke
5 Янв 2020 в 14:06

2 ответа

Думаю, вам нужен coalesce() :

select * 
from data 
where MANAGER = coalesce(:P2_EMPLOYEE, 'Alex')
0
forpas 5 Янв 2020 в 14:11

Несколько других вариантов (помимо тех, которые вы уже видели):

where manager = case when :P2_EMPLOYEE is null then 'Alex'
                     else :P2_EMPLOYEE
                end;

where manager = decode(:P2_EMPLOYEE, null, 'Alex', :P2_EMPLOYEE)

where manager = nvl(:P2_EMPLOYEE, 'Alex')
0
Littlefoot 5 Янв 2020 в 14:34