永发信息网

oracle数据库IN

答案:2  悬赏:80  手机版
解决时间 2021-11-09 07:45
oracle数据库IN
最佳答案
有点麻烦,就是你要把你的ID重新组装一个SQL,比如你的ID是:1,2,3,4,而查出来的只有1,2,3的数据,4没有数据,你可以这么做:
select * from (select 1 as id union select 2 as id union select 3 as id union select 4 as id) a where id not in
(select id a FROM VIN n where id in(1,2,3,4) group by id)
得到id:4
你那么多ID的话,建议建立一个临时表,把你的200个ID存到这个表里去,然后SQL和上面一样,把a表换成你的临时表就可以了。找到后清空或删除你的临时表(根据业务需要)追问恩 谢谢你啊 最后一问 我200个ID都输放好了 怎样才能快速存到临时表里 一个一个insert的话 太慢 有没有效率高的 3Q 麻烦你了追答你的ID是传入的参数吗?如果是这样的话,可以不用建立临时表,假设:
String ids="1,2,3,4"
StringBuffer s = new StringBuffer();
for(int i:ids)
{
s.append(" select ").append(i).append(" as id union");
}
//此处截取s字符串到最后一个空格,即去掉最后一个“union"
String newstr = s.toString().substring(0,s.toString().lastIndexOf(" "));
然后:
sql="select * from ("+newstr +") a where not exists
(select 'x' FROM new_tel n where id in(1,2,3,4) and n.id=a.id)"
执行就可以了。
用 not exists 更快

如果没有用到JAVA,而且ID还是已知的,你只是想要SQL,有个笨办法,就是把ID放到文本文件中,用查找替换的办法,查找“,”,替换成“ as id union select ” 注意前后空格,然后最开始加上select 最后加上 as id 就能得到这个常量串了

快速insert 的办法就是 insert into 临时表 as 上面的常量串
全部回答
select 1 as you, VIN.* from VIN where ID in ('xx','xx','xx',.......)
union all
select 1 as meiyou, VIN.* from VIN where ID not in ('xx','xx','xx',.......)

1就是存在的 2就是不存在的追问我可能说的不够详细 是这个样子 主要是我想知道 IN里面的ID 哪些是没有查出数据来的 因为我要查到的ID 有200个 但是 我用 where ID in (200个ID) 但是实际我只得出来180条数据 所以我想知道在 那200 ID里面没有得出数据的那20个ID 是哪些ID追答你这就要写一个存储过程去处理你那些ID了 然后把ID插到一个表里去 然后和这个表去比较 这样就能得到你要的那些数据!~
你可以用objectbrower这个工具 然后把你的那些id粘到excel里 直接一复制就可以复制到表里去!~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我的指甲为什么会这样
《やりたがり屋さん》中那个出镜最多女的是谁
都说德业的除湿机好,我想知道他哪些做的好?
电喷柴油机怎么排空气,没有手泵的。
今晚最低气温1度,花在室外会冻伤吗?
只或止字开头的网名有什么好听的?
现在低保一个月多少钱
小学生喜欢做采蜜本吗?
批着羊皮的狼 这首歌被改过吗,现在这歌的歌
烟台海阳的旅游景点有哪些
复旦法本毕业,有必要出国读llm吗
白萝卜煲汤放什么材料好
电脑死掉了,我账套都没了,最近听说了一款叫
求一首越南鼓电音歌名!!!!
广州精品鞋我想知道这个在什么地方
推荐资讯
fifa online3 球员搜索网页版
写信信封上有两个邮政编码,怎么填?
怎样才能让脸变得通红通红的
QQ发不了红包 就一直写“非法参数”这是为什
银行理财双录最全攻略(录什么,在哪录,怎么
1977年6月出生的男士命运如何
勒尔勒到和硕多少公里
我要寻根问祖我家家谱失传但是最进我找老宅文
水寨中学的介绍
举例,水的比重
成都北至贵阳的火车时刻表
诸暨市西施故里跟诸暨长城影视城差多少公里
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?