我正在尝试编写一个将三个变量一起传递的查询:
select
a,b,c,*
from table1 where
(a,b,c) in (('1','2','3'),('4','5','6'));
当所有值都不为空时,这会给我结果。
但是,当我尝试将其中至少一个作为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
您能帮我解决问题的方法吗?我可以使用三个不同查询的并集,但这容易出错,需要查询大量数据。
谢谢,
那是因为您给它提供仅拉取非null值的选项,请尝试这样的操作
select
a,b,c,*
from table1 where
(a in ('1', '4')) or (b in ('2','5')) or (c in ('3','6'));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句