【发布时间】:2011-01-24 22:57:24
【问题描述】:
我有一个 SQL 语句,我想通过使用 IN 子句来获取 1200 ep_codes 的数据。当我在 IN 子句中包含超过 1000 个 ep_codes 时,Oracle 说我不允许这样做。为了克服这个问题,我尝试将 SQL 代码更改如下:
SELECT period, ...
FROM my_view
WHERE period = '200912'
...
AND ep_codes IN (...1000 ep_codes...)
OR ep_codes IN (...200 ep_codes...)
代码已成功执行,但结果很奇怪(获取所有时段的计算结果,而不仅仅是 200912,这不是我想要的)。在IN 子句之间使用OR 这样做是否合适,或者我应该执行两个单独的代码,一个是1000,另一个是200 ep_codes?
Pascal Martin 的解决方案非常有效。感谢所有提供宝贵建议的人。
【问题讨论】: