在oracle的clause限制中

时间:2017-08-28 11:43:07

标签: sql oracle oracle12c where-in

我在oracle中动态地形成一个查询来选择我给出id作为输入的数据。我的查询如下

select * from temp where temp_id in ( :Id);

我的输入ID是数千,所以我动态创建in子句,使我的最终查询如下

select * 
from temp
where temp_id in (a1,a2,a3,....a999) 
  or temp_id in (b1,b2,b3,....b999) or so on ....

我的问题在这之后即使我得到太多的值异常。 你能帮我吗?

2 个答案:

答案 0 :(得分:3)

一种方法是使用全局临时表:

userAgent

答案 1 :(得分:0)

使用单个请求执行此操作

select * from temp where id in (
    select a.letter||b.num from (
        select chr(rownum + 96) letter from dual connect by rownum < 3
    ) a 
    join (
        select rownum as num from dual connect by rownum < 1000
    ) b on 1=1
);

并在&#34; rownum&lt;&#34;之后替换值你想要的字母数量+ 1(数字相同)