回答
有時候,如果你要問的問題,你可能會關於它的錯誤方法:-)
如果您擔心限制,請考慮將值放入臨時表中,然後加入表中以獲得結果。
至於具體的限制,這幾乎肯定會因您使用的DB2而異:LUW,z/OS,iSeries等等。它也可能因版本而異。我在網上看到關於DB2拒絕超過一千個條目的問題,但至於哪個平臺/版本,我不能說。
你最好的選擇可能是簡單地測試你使用的任何版本,看看你什麼時候達到極限。 IBM通常並不傾向於發佈這樣的限制,相反,假設你會做出明智的事情並避免太多(尤其是因爲優化引擎幾乎不可能爲任意值選擇合適的執行路徑)。
從Oracle組未標記。 – user3492304 2014-09-01 06:30:24
我只想知道DB2中IN謂詞的最大限制。我對像臨時表等可能的解決方案不感興趣,因爲我們已經想到所有這些替代方案:) – user3492304 2014-09-01 06:32:40
@ user3492304:那麼你需要規範的_first_事情是哪個平臺和哪個版本。然後進入IBM的doc站點並獲取相關的PDF。如果它不在那裏,IBM不會說。作爲在Software Group工作的人員,我知道IBM除非絕對必要,否則不會指定限制 - 否則會限制其行爲自由。如果他們發佈它,我會吃我的午餐:-) – paxdiablo 2014-09-01 06:43:06
對於z/OS,以下限制是由IBM給出,但目前還沒有規範的至IN子句:
的AS/400極限是1000左右,基於錯誤,我們得到當我們超過那個。我們正在分解成多個較小的查詢來修補我們的傳統JEE應用程序。
當達到in子句的限制時使用連接語句。這對所有意圖和目的都沒有限制。
select salary from employee join mytable on empid = id.
- 1. 「IN」謂詞在SQL
- 2. iPhone上的CoreData支持IN謂詞嗎?
- 3. MySQL並跳過WHERE謂詞
- 4. LINQ MoreThan(謂詞,限制)擴展而不是計數(謂詞)>限制?
- 5. NSFetchresultsController多謂詞
- 6. 多對多謂詞
- 7. 減少謂詞調用
- 8. 使用IN謂詞的MySQL性能
- 9. 如何使用「Where」與異步謂詞?
- 10. C#LINQ Where謂詞類型參數
- 11. Prolog謂詞 - 無限循環
- 12. 核心數據謂詞涉及謂詞的多對多性能
- 13. Xpath多個謂詞
- 14. 使Linq.Expression適合where謂詞嗎?
- 15. 如何構建具有多列的CriteriaQuery謂詞IN子句?
- 16. 連接之前Where謂詞中的條件vs Where子句
- 17. Swift核心數據謂詞IN子句
- 18. IN謂詞如何在SQL中工作?
- 19. 需要幫助編碼CriteriaQuery「in」謂詞
- 20. 使用基於另一個謂詞的謂詞的謂詞過濾數組,這是謂詞的關鍵
- 21. 帶有'in'的DB2子查詢,限制?
- 22. T-SQL:JOIN上的附加謂詞與WHERE子句
- 23. LINQ to Entities是否支持'where'子句謂詞中的IEquatable?
- 24. 的XPath多謂詞等價
- 25. 反對數的上限是多少?
- 26. 查找匹配的謂詞。謂詞的謂詞?
- 27. STL謂詞是否必須是純謂詞?
- 28. 的Neo4j 2.0:謂詞限制條款時
- 29. Spring Data + QueryDSL空謂詞+謂詞鏈接
- 30. mq_unlink的限制是多少?
據我所知,在DB2(LUW)的SQL語句可以達到約2 MIB,所以你可以在原則上有某處的IN子句中250K條款的區域,允許每學期8個字符,包括逗號。 OTOH,你真的不應該利用這一點。 – 2014-09-01 06:32:34
此外,如果任何答案甚至可能,則需要定義「上限」。如果它的意思是「最大數值」,答案可能與「謂詞的最大長度」不同。您可能一次有一千個CHAR(3)值,另一次可能有一百個CHAR(30)值,並獲得不同的結果。 – user2338816 2014-09-05 08:13:08