bnA Geschrieben 28. Januar 2009 Geschrieben 28. Januar 2009 Hallo, ich programmiere hier auf der Arbeit an einer DB2 Datenbank und möchte Daten davon auslesen. Momentan habe ich folgenden Code SELECT * FROM D.ATENBANK WHERE CODE < 'ADR' ORDER BY CODE DESC FETCH FIRST 20 ROWS ONLY Und zwar soll dieser Select Befehl alle Daten aus der Datenbank auslesen die z.B. kleiner als ('ADR') sind, d.h. es wären z.B. die Daten 1-79 Da es ja keinen FETCH LAST Befehl gibt, muss ich das also erstmal umdrehen und dann FETCH FIRST 20 machen. Jetzt will ich das aber ganz am Ende wieder zurückdrehen, damit es richtig herum in die Tabelle eingelesen werden kann. Aber leider kann man am Ende kein Order by mehr machen. Hat jmd. einen Tipp? Kann man das aktuelle Ergebnis vielleicht irgendwie zwischenspeichern? Danke für euer Mühe! Zitieren
Amstelchen Geschrieben 28. Januar 2009 Geschrieben 28. Januar 2009 ungetestet: SELECT * FROM ( SELECT * FROM D.ATENBANK WHERE CODE < 'ADR' ORDER BY CODE DESC FETCH FIRST 20 ROWS ONLY) ORDER BY CODE ASC s'Amstel Zitieren
bnA Geschrieben 28. Januar 2009 Autor Geschrieben 28. Januar 2009 Hey, danke für die schnellere Antwort, leider funktioniert das nicht. Es kann vielleicht sein, dass hier eine alte DB2 Version oder so benutzt wird, aber leider weiß ich nicht, wo ich das nachschauen kann. Ich bekomme folgende Fehlermeldung: DB2 SQL error: SQLCODE: -199, SQLSTATE: 42601, SQLERRMC: ORDER; UNION EXCEPT Ich hoffe jemand kann damit etwas anfangen. danke Zitieren
allesweg Geschrieben 28. Januar 2009 Geschrieben 28. Januar 2009 IBM sagt "Keyword &1 not expected. Valid tokens: &2." - wobei &1 = ORDER und &2 = UNION EXCEPT Schau dir mal DB2 Temporary Tables an Zitieren
allesweg Geschrieben 28. Januar 2009 Geschrieben 28. Januar 2009 IBMs Onlinedoku zu den SQL-Kötern findest du >hier< Zitieren
bnA Geschrieben 30. Januar 2009 Autor Geschrieben 30. Januar 2009 Danke für eure Hilfe, das Probelm hat sich gelöst! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.