Ich weiß, dass die Version viel zu alt ist (yea Version 4!), aber ich habe keine Wahl.
Wie kann ich meine Abfrage auf 100 Zeilen beschränken, nur für DB2 AS400?
%Vor%und
%Vor%funktioniert nicht.
Irgendwelche Ideen oder Workaround?
Hier ist eine Beispiel-SQL-Abfrage (funktioniert nicht):
%Vor%Es sagt
[SQL0199] Schlüsselwort FETCH nicht erwartet. Gültige Token: FÜR MIT ORDER UNION OPTIMIZE.
Es gibt keine dbms-Unterstützung für diese Operation, überprüfen Sie Version 4 DB2 UDB für AS / 400-SQL-Referenz : Nein Limit
, Top
, First
, ... reservierte Wörter.
Sie können versuchen, Zeilen über die where-Klausel, where sequence between 100 and 200
, zu begrenzen. Aber das ist ein unwirkliches Szenario.
Die erste Umgehung ist über den Cursor :
%Vor%Zweitens, in Ihrer Middleware-Sprache .
Ich hoffe, dass jemand einen cleveren Workaround postet, aber meiner Meinung nach nicht.
Lösung nur für & gt; V4R4
Verwenden von FETCH FIRST [n] ROWS ONLY
:
Referenz: publib.boulder.ibm.com
Der Unterschied, den ich von Ihrer Abfrage zu diesem Beispiel sehen kann, ist, dass wir hier eine ORDER BY
-Klausel verwenden - haben Sie die Möglichkeit, ein ORDER BY
hinzuzufügen - sollte es den Trick machen. Verweis auf: Ссылка
Um Bereiche oder auch nur die ersten 10 Zeilen zu erhalten, müssten Sie ROW_NUMBER()
(seit v5r4) verwenden:
Referenz: blog.zanclus.com