Die Auswahlliste kann nicht immer zuletzt ausgewertet werden, da ORDER BY Aliase verwenden kann, die in der Auswahlliste definiert sind, sodass sie anschließend ausgeführt werden müssen. Zum Beispiel:
SELECT foo+bar foobar FROM table1 ORDER BY foobar
Ich würde sagen, dass die Reihenfolge der Ausführung im Allgemeinen so aussehen könnte:
- VON
- WO
- GRUPPE NACH
- AUSWÄHLEN
- HABEN
- BESTELLEN VON
Die Klauseln GROUP BY und WHERE könnten ausgetauscht werden, ohne das Ergebnis zu ändern, ebenso wie die Klauseln HAVING und ORDER BY.
In Wirklichkeit sind die Dinge komplexer, da die Datenbank die Ausführung gemäß unterschiedlichen Ausführungsplänen neu anordnen kann. Solange das Ergebnis gleich bleibt, spielt es keine Rolle, in welcher Reihenfolge es ausgeführt wird.
Beachten Sie auch, dass bei Auswahl eines Indexes für die ORDER BY-Klausel die Zeilen möglicherweise bereits in der richtigen Reihenfolge sind, wenn sie von der Festplatte gelesen werden. In diesem Fall wird die ORDER BY-Klausel überhaupt nicht ausgeführt.