为了账号安全,请及时绑定邮箱和手机立即绑定

SQL IN条款1000项限制

/ 猿问

SQL IN条款1000项限制

慕前端131612 2019-07-24 19:10:36

SQL IN条款1000项限制

可以在SQL IN子句中放置1000多个项目吗?我们的Oracle数据库无法解决问题。

如果是,我们如何在SQL IN子句中放置超过1000个项目?

如果没有,我还能做什么?


查看完整描述

3 回答

?
素胚勾勒不出你

您应该将IN子句转换为INNER JOIN子句。

您可以像这样转换查询

SELECT  foo   
FROM    bar   
WHERE bar.stuff IN  
       (SELECT  stuff FROM asdf)

在像这样的另一个查询。

SELECT  b.foo 
FROM    ( 
        SELECT  DISTINCT stuff 
        FROM    asdf ) a 
JOIN    bar b 
ON      b.stuff = a.stuff

你也将获得很多表现


查看完整回答
反对 回复 2019-07-24
?
斯蒂芬大帝

还有另一种解决方法,在任何其他答案(或其他已回答的问题)中都没有提到:

任何语句x in (1,2,3)都可以重写为(1,x) in ((1,1), (1,2), (1,3)),并且1000元素限制将不再适用。我已经使用索引测试x并解释计划仍然报告Oracle正在使用访问谓词和范围扫描。


查看完整回答
反对 回复 2019-07-24
?
大话西游666

对于同一个变量,我们可以有多个“IN”语句。

例如:

select val from tablewhere val in (1,2,3,...)orval in (7,8,9,....)


查看完整回答
反对 回复 2019-07-24

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信