在 Where-In 中传递多个参数 SQL- Oracle

Passing multiple parametes in Where-In SQL- Oracle

我正在尝试编写一个同时传递三个变量的查询:-

select 
a,b,c,*
from table1 where
(a,b,c) in (('1','2','3'),('4','5','6'));

当 none 个值为空时,这会给出结果。

然而,当我尝试将其中至少一个作为 null/blank 传递时,它给我无效的关系运算符错误:-

select 
a,b,c,*
from table1 where
(a,b,c) in (('1','2',null),('4','5',''));
  [Error Code: 920, SQL State: 42000]  ORA-00920: invalid relational operator

你能帮我解决这个问题吗? 我可以使用三个不同查询的并集,但在查询大量数据时容易出错。

谢谢,

那是因为您为其提供了仅提取非空值的选项,请尝试这样的操作

select 
a,b,c,*
from table1 where
(a in ('1', '4')) or (b in ('2','5')) or (c in ('3','6'));