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 @
解决方案: |
|
|
|
|
|