Ich weiß, die Version ist viel zu alt (Yea Version 4!), Aber ich habe keine andere Wahl.SQL Query Limit für DB2 AS/400 Version 4
Wie kann ich meine Abfrage auf 100 Zeilen beschränken, nur für DB2 AS400?
FETCH FIRST n ROWS ONLY
und
ROW_NUMBER()
funktionieren nicht.
Irgendwelche Ideen oder Workaround?
Hier ist ein Beispiel SQL-Abfrage ist (nicht funktioniert):
SELECT POLNOP FROM ZICACPTF.POLHDR FETCH FIRST 10 ROWS ONLY
Es sagt
[SQL0199] Stichwort erwartet FETCH nicht. Gültige Tokens: FÜR MIT ORDER UNION OPTIMIZE.
Die früheste Referenz, die ich für eine _fetch-first-Klausel_ finde, ist V5R1, ähnlich wie für 'ROW_NUMBER()'. Können Sie ein Beispiel geben, wie ** Sie ** es benutzen möchten? Eine FETCH-Anweisung kann einen Block von beispielsweise 100 Reihen holen. Sie könnten einmal FETCH und nur diese Zeilen verarbeiten, aber das impliziert Embedded SQL. Außerdem gab es fünf separate Releases von "Version 4" - welche ist deine? – user2338816
V4R4, was ich nur was eine Tabelle zu holen ist aber nur für zB 10 Zeilen begrenzt. in mysql ist es wie 'wählen * von table1 limit 10' – Kevin
Laufen Sie eine MySQL-Version von 2001? Das ist (scheinbar), als die _fetch-first-Klausel_ in DB2 auf iSeries auftauchte, daher sollte ein ähnlicher Vergleich für MySQL durchgeführt werden. Mit V4R4, das jetzt mehr als 15 Jahre alt ist, kann nicht viel getan werden. IMO, die einzige vernünftige Möglichkeit ist durch Embedded SQL, wo Sie die ersten 10 Zeilen abholen. Ich kann die Anforderungen für SQL-gespeicherte Prozeduren auf V4R4 nicht abrufen. Sie könnten eine erstellen, die eine Ergebnismenge zurückgibt, die nur 10 Zeilen enthält. Wenn ein gespeicherter SQL-Prozess nicht sinnvoll ist, könnte ein externer gespeicherter Prozess verwendet werden. – user2338816