Hi,
gibt es eine Möglichkeit, mit einem select (natürlich mit order by, so daß eine Ordnung gegeben ist) die drittletzte Zeile der Ergebnis-Menge auszuwählen?
ja, natürlich kann oracle das auch, man muss nur wissen, wie ROWNUM funktioniert. das verwirrende daran ist, wann (zeitlich) ROWNUM vergeben wird, nämlich das ROWNUM -> vor <- der sortierung vergeben wird.
dann wird auch klar, warum rownum = 3 niemals ergebnise in oracle liefern wird rownum = 1, bzw. rownum <= 3 aber schon. das dbms nimt den ersten datensatz, gibt ihm ROWNUM 1 und prüft dann die WHERE klausel, die besagt nimm nur ROWNUM = 3, also schließt es ihn aus. nun nimmt das dbms den nächsten datensatz und gibt im natürlich wieder die ROWNUM 1 und die ist wieder ungleich 3......
das beste ist, die sortietnug mit DESC machen, ROWNUM mit aliasnamen dazu, das alles als unterabfrage in der FROM klausel und dann dort in der where klausel mit aliasname = 3 den datensatz auszuwählen.
Das geht deswegen nicht, weil das Einfügen der ROWNUM _VOR_ dem ORDER BY geschieht ...
cu,
Andreas
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.