Existe a seguinte estrutura no banco de dados. l_family_id é sempre retornado como parâmetro, mas l_account e l_product_id cada vez que um dos 2 é nulo. Como isso pode ser superado para que eu não receba um erro na seleção Pode ser pesquisada conta ou product_id.
such as
select product_id from tbl27
where family_id = l_family_id
and account = null
and product_id = l_product_id
and
select product_id from tbl27
where family_id = l_family_id
and account = l_product_id
and product_id = null
family_id family account product_id
1 family1 101 10
1 family1 101 20
1 family1 103 30
1 family1 103 40
2 family2 201 110
2 family2 201 120
2 family2 204 130
2 family2 204 140
CREATE TABLE tbl27 (family_id int, family VARCHAR2(30), account int, product_id
int);
insert into tbl27 (family_id,family,account, product_id)
SELECT 1, 'family1', 101, 10 FROM DUAL UNION ALL
SELECT 1, 'family1', 101, 20 FROM DUAL UNION ALL
SELECT 1, 'family1', 103, 30 FROM DUAL UNION ALL
SELECT 1, 'family1', 103, 40 FROM DUAL UNION ALL
SELECT 2, 'family2', 201, 110 FROM DUAL UNION ALL
SELECT 2, 'family2', 201, 120 FROM DUAL UNION ALL
SELECT 2, 'family2', 204, 130 FROM DUAL UNION ALL
SELECT 2, 'family2', 204, 140 FROM DUAL;
Expected result;
select product_id from tbl27
where family_id = 1
and account = 101
and product_id = null
product_id
10
20
Acho que entendi o que você está perguntando. Você precisaria verificar se há um parâmetro nulo ou se o valor corresponde.