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);
都会报错,请问这种情况下应该怎么写,谢谢各位了
展开
 我来答
百度网友f9dfb0d
2015-03-05 · TA获得超过136个赞
知道小有建树答主
回答量:137
采纳率:0%
帮助的人:166万
展开全部
不能写常量,可以用union,oracle的写法:
SELECT * FROM table where t.id in (select a.id from table2 a union select 1 from dual);
zzx20132
2015-03-05 · TA获得超过600个赞
知道小有建树答主
回答量:379
采纳率:0%
帮助的人:210万
展开全部
使用union all即可:
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'));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
twvampire
2015-03-05 · TA获得超过3620个赞
知道大有可为答主
回答量:3029
采纳率:76%
帮助的人:2967万
展开全部
select *
from table t where t.id in (select  a.id from table2 a) or  t.id=1
更多追问追答
追问
非常抱歉,这种写法太浪费了,而且假如固定值多了会很长,占用过多的内存
追答
子查询中嵌套union 比用or占用的内存比 or少,,,第一次听说
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式