在 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'));
我正在尝试编写一个同时传递三个变量的查询:-
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'));