oracle的in查询,同时存在子查询和固定值怎么办
select*fromtabletwheret.idin(selecta.idfromtable2a);上面是个正常的查询语句,现在我的问题是假如除了table2的id以...
select * from table t where t.id in (select a.id from table2 a);
上面是个正常的查询语句,现在我的问题是假如除了table2的id以外,我还需要在in的判断里面加上个固定的值,例如1(table2的id的值没有1),假如我写成了
select * from table t where t.id in (select a.id from table2 a , 1);或者
select * from table t where t.id in ((select a.id from table2 a) , 1);
都会报错,请问这种情况下应该怎么写,谢谢各位了 展开
上面是个正常的查询语句,现在我的问题是假如除了table2的id以外,我还需要在in的判断里面加上个固定的值,例如1(table2的id的值没有1),假如我写成了
select * from table t where t.id in (select a.id from table2 a , 1);或者
select * from table t where t.id in ((select a.id from table2 a) , 1);
都会报错,请问这种情况下应该怎么写,谢谢各位了 展开
展开全部
使用union all即可:
select * from table t where t.id in (select a.id from table2 a
union all(1));
select * from table t where t.id in (select a.id from table2 a
union all(1));
更多追问追答
追问
非常抱歉,这句语句我在plsql中报了ORA-00928:missing SELECT keyword,因为我要用到的属性是varchar2,并非number
追答
那就自己变通下嘛:select * from table t where t.id in (select a.id from table2 a
union all('1'));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select *
from table t where t.id in (select a.id from table2 a) or t.id=1
更多追问追答
追问
非常抱歉,这种写法太浪费了,而且假如固定值多了会很长,占用过多的内存
追答
子查询中嵌套union 比用or占用的内存比 or少,,,第一次听说
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询