日期:2014-05-17  浏览次数:20682 次

oracle 中 in的使用
在做项目过程中查询语句中需要用到 in(很多参数) 当参数多余1000时就会出现参数列数不能大于1000的错误
请问,除了将参数分割,还有什么好多办法,请指教

------解决方案--------------------
select * from tablename t where t.id in select id from .....
------解决方案--------------------
将你需要的参数先存入到一个临时表中,然后再用1楼的sql就行
------解决方案--------------------
二楼说法是正确的,我以前也遇见过此类问题。
------解决方案--------------------
使用exists吧 这样执行起来效率高。
select * from tablename a where exists(select null from tablename1 b where b.id = a.id)
------解决方案--------------------
二楼方法很正确,呵呵,无需多说了。
------解决方案--------------------
引用楼主 xiaolong_yuhan 的帖子:
在做项目过程中查询语句中需要用到 in(很多参数) 当参数多余1000时就会出现参数列数不能大于1000的错误
请问,除了将参数分割,还有什么好多办法,请指教

------解决方案--------------------
二楼正解