回答

收藏

Oracle SQL:如何在IN子句中使用1000多个项目

技术问答 技术问答 152 人阅读 | 0 人回复 | 2023-09-13

我有一条SQL语句,我想在其中ep_codes使用IN子句来获取1200的数据。当我ep_codes在IN子句中包含1000个以上时,Oracle表示不允许这样做。为了克服这个问题,我尝试如下更改SQL代码:
7 m% G7 W9 p0 {SELECT period, ...
' f1 v, K2 c& M# n0 ~FROM   my_view5 g" x' b$ |& J3 U1 @. G
WHERE  period = '200912'- ]- ^1 \8 Z3 n# N* o
       ...  ~+ l" o, s" Z: a8 ~
       AND ep_codes IN (...1000 ep_codes...)
: s, D8 t* L' Y7 b2 S       OR  ep_codes IN (...200 ep_codes...)0 s* o! P4 W( k6 M" ?
该代码已成功执行,但结果很奇怪(在所有期间都获取了计算结果,而不仅仅是200912,这不是我想要的)。是否应该使用ORbetweenIN子句来做到这一点,还是应该执行两个单独的代码,一个使用1000,另一个使用200
2 v5 m" b# z0 m0 `0 rep_codes?3 b2 z& y7 J# V8 }& K& f6 J. s

+ C7 q8 G0 ?9 I. iPascal Martin的解决方案运行完美。感谢所有提供宝贵建议的人。+ z) h% j8 ^5 V3 F% d
                + |8 N/ f" ~9 @
解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则