谓词WHERE IN()db2的上限是多少?

时间:2014-09-01 06:22:29

标签: database db2 db2-connect

DB2中谓词WHERE IN的上限是什么。

例如:

从员工(1,2,3,4 ... N)

中选择薪水

4 个答案:

答案 0 :(得分:2)

AS / 400限制大约是1000,基于我们超过该值时得到的错误。我们正在拆分成多个较小的查询来修补我们的旧版JEE应用程序。

答案 1 :(得分:1)

有时候,如果你不得不问这个问题,你可能会采取错误的方式: - )

如果您担心限制,请考虑将值放入临时表中,然后只需加入表格即可获得结果。

至于具体限制,这几乎肯定会因您使用的DB2而异:LUW,z / OS,iSeries等。它也可能因版本而异。我在网上看到过有关DB2拒绝超过一千个条目的问题但是,对于哪个平台/版本,我无法说出来。

您最好的选择可能是简单地测试您使用的任何版本以查看何时达到限制。 IBM作为一项规则并不倾向于发布这样的限制,相反,假设你做了明智的事情而避免了太多(尤其是因为优化引擎几乎不可能选择一个任意值的体面执行路径。)

答案 2 :(得分:0)

对于z / OS,IBM给出了以下限制,但没有关于IN子句的说明:

https://www.ibm.com/support/knowledgecenter/SSEPEK_11.0.0/com.ibm.db2z11.doc.sqlref/src/tpc/db2z_limits.dita

答案 3 :(得分:0)

达到in子句的限制时使用join语句。这对所有意图和目的都没有限制。

named_captures_only