解决方案 »

  1.   

    select 你的参数  from table join 你的表 
      

  2.   

    非得用in,一个and不够,可以再写个in...
    但是还是推荐楼上各位的 建议
      

  3.   

    楼主是不是需要的是exists?
    http://bbs.csdn.net/topics/310148714
      

  4.   

    建议你先把这些数据导入表里面,导入数据可是使用oracle中的sqlldr工具,导入后可以使用in或者exists,一般来讲exists效率比in好
      

  5.   

    语法上,=some 和in 是等效的,但是没试过是不是有1000的限制。楼上各位的建议很好,像楼主这种情况,不建议用in
      

  6.   

    实践证明,也是不能超过1000,即便是你in(select ....from dual ),结论是,还是不能超过1000,楼主死心吧!
      

  7.   

    一般是用exists
    select * from t1 where exits (select key from t2 where t1.key = t2.key)
    或者用表关联
    select t1.* from t1,t2 where t1.key = t2.key
      

  8.   

    谢谢楼上各位的回答,这几天比较忙没过来。
    in后面的列表是从数据库中读取出来然后拼的字符串,所以数据是在表中的。该问题已经解决,是将in后面的字符串改成了子查询,然后就没有1000的限制了,而且速度上没什么影响。