Netzflut

Webdesign, Webentwicklung, Drupal & Zeuchs

DB2 rows limitieren

Inhaltsverzeichniss

    In DB2 existiert das SQL-Schlüsselwort LIMIT nicht. Die folgende Abfrage nach den Zeilen 50 bis 100 funktioniert beispielsweise nicht:

    SELECT * FROM TABLE t WHERE t.x='value' ORDER BY t.o DESC LIMIT 50,100

    Man muss sich in DB2 über die Funktion rownumber() aushelfen und eine geschachtelte query absetzen:

    SELECT * FROM (SELECT t.*, rownumber() OVER (ORDER BY t.o DESC) AS rn FROM TABLE t) AS x WHERE t.x='value' AND rn BETWEEN 50 AND 100 ORDER BY t.o DESC

    Durch over kann man in der Klammer mittels ORDER BY eine Sortierreihenfolge festlegen (meistens die gleiche wie in der äußeren query).

    Design&Code: