ROWNUM, ORDER BY, ORA-00907: missing right parenthesis
663072Oct 2 2008 — edited Oct 2 2008Möchte man nur die ersten 3 Datenzeilen nach einer Sortierung haben, füttert man den SQL Server leicht und verständlich beispielsweise mit:
SELECT * FROM (SELECT TOP 3 * FROM History ORDER BY Start DESC) AS query1 ORDER BY Start;
Oracle, so habe ich festgestellt, kapiert das nicht und möchte überhaupt alles ganz anders. So habe ich herausbekommen, dass es bei Oracle kein TOP, sondern ein ROWNUM gibt. Erste Versuche scheiterten, weil ROWNUM vor ORDER BY ausgeführt wird, die Sortierung also erst nach ROWNUM erfolgt.
Aber dafür soll es eine Lösung geben, die auch überall in Foren aufgeführt wird. Doch leider funktioniert auch die angebliche Lösung nicht:
SELECT * FROM (SELECT * FROM History ORDER BY Start) WHERE ROWNUM <= 3;
{color:#ff0000}ORA-00907: missing right parenthesis{color}
Was ist denn nun wieder falsch?