随笔 - 100  文章 - 50  trackbacks - 0
<2024年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(3)

随笔分类

随笔档案

文章分类

文章档案

收藏夹

我收藏的一些文章!

搜索

  •  

最新评论

阅读排行榜

评论排行榜

在Oracle中,sql中in不能超过1000个,比如:select  * from table  t where t.id in (1,2,3,......1001,1002)
系统将报错,解决办法如下,写成两个或者多个。如:t.id in (1,2,....1000) or t.id in (1001,1002)
实现代码如下:
 public String DivString(){
  StringBuffer sb = new StringBuffer();
  StringBuffer sb2 = new StringBuffer();
  List agentList = new ArrayList();
  for(int i =0;i<1100;i++) 
   agentList.add(i);
  for(int i=0;i<agentList.size();i++){
   if(i==agentList.size()-1)
    sb.append("'").append(agentList.get(i)).append("')");
   else if(i%1000==0&&i>0)
    sb.append("'").append(agentList.get(i)).append("'")
    .append(") or t.id in (");
   else
    sb.append("'").append(agentList.get(i)).append("',");
  }
  sb2.append(" t.id  in ('',"+sb);
  System.out.println("sql is: "+sb2.toString());
  return sb2.toString();
 }
posted on 2010-01-11 22:48 fly 阅读(3246) 评论(2)  编辑  收藏 所属分类: 数据库学习

FeedBack:
# re: oracle sql in中数据不能超过1000个的解决方法。 2010-08-20 21:10 
你这个方法都不行,不要抄了,以后  回复  更多评论
  
# re: oracle sql in中数据不能超过1000个的解决方法。 2011-08-03 09:52 幽野闲鹤
查多次不久完了,in效率那么低.查多次效率比in高多了
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: