Ich habe eine SQL-Anweisung, wo ich Daten von 1200 ep_codes
durch Verwendung von IN
Klausel erhalten möchten. Wenn ich mehr als 1000 ep_codes
innerhalb IN-Klausel einschließe, sagt Oracle, dass ich das nicht tun darf. Um dies zu überwinden, habe ich versucht, den SQL-Code wie folgt zu ändern:Oracle SQL: Wie verwendet man mehr als 1000 Elemente innerhalb einer IN-Klausel
SELECT period, ...
FROM my_view
WHERE period = '200912'
...
AND ep_codes IN (...1000 ep_codes...)
OR ep_codes IN (...200 ep_codes...)
Der Code wurde erfolgreich ausgeführt, aber die Ergebnisse sind seltsam (Berechnungsergebnisse für alle Perioden abgerufen werden, nicht nur für die 200.912, die nicht das, was ich wollen). Ist es angebracht, das unter Verwendung OR
zwischen IN
Klauseln zu tun, oder sollte ich zwei separate Codes als eins mit 1000 und das andere mit 200 ep_codes ausführen?
Pascal Martins Lösung funktionierte perfekt. Danke an alle, die mit wertvollen Anregungen beigetragen haben.
Ich habe die Frage aktualisiert, um die Dinge klar über die seltsamen Ergebnisse zu machen. Jetzt probiere ich den Code wie Sie vorgeschlagen haben (mit zusätzlichen Klammern). Sobald die Ergebnisse abgerufen sind, werde ich es dir sagen. –
Danke, es funktioniert jetzt OK. Wiederum sehe ich, dass zusätzliche Klammern entscheidend sind. –
Gern geschehen :-) - ja, Klammern können hilfreich sein ;-) –