Нужна помощь в упрощении приведенного ниже запроса Oracle SQL с условием ИЛИ: возможно ли использовать один запрос на выбор вместо нескольких.
для этого подзапроса "выберите usr_key из usr, где usr_login = 'abcd'" я смог превратить его в сингл вместо записи 4 раза, поскольку он просто дает одно значение. но для второго подзапроса он записывает несколько значений, поэтому я не могу их объединить.
select * from catalog where
(
(select usr_key from usr where usr_login='abcd') in (approver_user,CERTIFIER_USER,FULFILLMENT_USER)
or ('abcd') in (EMERGENCYAPPROVERUSER,SPECIALAPPROVERUSER)
or approver_role IN
(select ugp.ugp_key from ugp , usg,usr uuu where ugp.ugp_key=usg.ugp_key and usg.usr_key=uuu.usr_key and uuu.usr_login='abcd')
or CERTIFIER_ROLE IN
(select ugp.ugp_key from ugp , usg,usr uuu where ugp.ugp_key=usg.ugp_key and usg.usr_key=uuu.usr_key and uuu.usr_login='abcd')
or FULFILLMENT_ROLE IN
(select ugp.ugp_key from ugp , usg,usr uuu where ugp.ugp_key=usg.ugp_key and usg.usr_key=uuu.usr_key and uuu.usr_login='abcd')
)
and entity_type='Entitlement';