SELECT * FROM  WHERE  AA  IN ()  在ORACLE 中 IN中的记录好像最大只能存放1000条记录,但是我这里有上万条记录并且没有规则,我在网上找了 说是要建回话临时表 。可是在我这里行不通 。那位老大给个完美的解决方案 
谢谢了

解决方案 »

  1.   

    老问题了,可以通过建临时表/表匹配记录的方式:SELECT * FROM AA
     WHERE AID IN (1,2,3,...);==>SQL> SELECT BID FROM BB;BID
    ------------------------------1
    2
    3
    ...SELECT * FROM AA
     WHERE EXISTS (SELECT 1
                     FROM BB
                    WHERE AA.AID = BB.BID);
      

  2.   

    那你用union吧,把记录分成多份,然后用union合起来
    SELECT * FROM  WHERE  AA  IN (1,2,3,4)
    UNION
    SELECT * FROM  WHERE  AA  IN (5,6,7,8)
      

  3.   

    尽量不要用in语句,而要改成EXISTS语句,当记录达到一定数量级时,exists的效率也成几何增长。
      

  4.   

    楼上的 EXISTS语句 该怎么写 能给个例子 我菜鸟 
    谢谢了